Skip to content
Smarter by Design.Simpler for Business

sys-cmd curl ​

sys-cmd curl, WEB-CLI'de seçili route table'dan bir adrese HTTP ya da HTTPS isteği gönderir ve yanıtı gösterir. Yalnız başlıkları, yalnız durum kodunu ya da bağlantının TLS dahil bütün ayrıntılarını görmek mümkündür. Bir backend'in sağlık adresini, bir vService'in belirli bir host adına verdiği yanıtı ya da bir yönlendirme zincirini denetlemek için kullanılır.

Komut Özeti ​

TR7 WEB-CLI · sys-cmd curl
# curl yazıp Tab: serbest parametre
admin@TR7LBWAF01> sys-cmd curl
<curl-parameter-1>
 
admin@TR7LBWAF01> sys-cmd curl <parametreler> <adres>
admin@TR7LBWAF01>  

curl sözcüğünden sonra yazılan her şey araca olduğu gibi aktarılır. Zorunlu alan yoktur; adres parametrelerle birlikte aracın kendi sözdizimine göre yazılır.

Nasıl Çalışır ​

KonuDavranış
Bağlamİstek seçili v-device ve route table içinden gönderilir; yalıtılmış bir route table'daki backend için önce route-table set çalıştırılır.
TırnakBoşluklu başlıklar tırnak içine alınır. & içeren adresler ve $ içeren değerler tek tırnakla yazılır; tırnaksız yazılan & satırın Invalid command hatasıyla reddedilmesine yol açar.
Dosya-o ile yazılan dosya geçici dosya alanına düşmez; yanıt gövdesi saklanacaksa | to-file <ad> kullanılır.
SüreYanıt tamamlanınca kapanır; yanıt vermeyen hedefte --max-time ile sınır konur ya da Ctrl+C ile durdurulur.
KayıtHer çalıştırma kullanıcı loglarına yazılır.

Sık Kullanılan Parametreler ​

ParametreNe yaparArkasına ne yazılır
-IYalnız yanıt başlıklarını ister—
-iGövdeyle birlikte yanıt başlıklarını da yazar—
-vBağlantı, TLS el sıkışması, istek ve yanıt başlıklarının ayrıntısını yazar—
-kSertifika doğrulamasını atlar; kendinden imzalı sertifikalı backend'lerde—
-LYönlendirmeleri izler—
-Hİsteğe başlık ekler"Başlık: değer" (ör. "Host: shop.example.com")
-XHTTP yöntemini değiştirirGET · POST · PUT · DELETE · HEAD
-dİstek gövdesi gönderirGövde metni, tek tırnak içinde
--resolveBir adın hangi IP adresine gideceğini DNS'e sormadan belirlerad:port:ip (ör. shop.example.com:443:10.0.7.20)
-sİlerleme çubuğunu ve hata dışı iletileri gizler—
-o · -w-o /dev/null gövdeyi atar; -w yanıt bilgisini istenen biçimde yazar'%{http_code}' gibi biçim dizgisi
--max-timeİsteğin toplam süresini sınırlarSaniye
--connect-timeoutBağlantı kurma süresini sınırlarSaniye

Tablo sık kullanılan parametreleri özetler; tam liste ve davranış, aracın cihazdaki sürümüne bağlıdır.

Örnekler ​

TR7 WEB-CLI · A) Backend sağlık adresinin durum kodu
admin@TR7LBWAF01> sys-cmd curl -s -o /dev/null -w '%{http_code}' http://10.20.0.30/health
admin@TR7LBWAF01>  
TR7 WEB-CLI · B) vService'in belirli bir host adına yanıtı
admin@TR7LBWAF01> sys-cmd curl -I -H "Host: shop.example.com" http://10.0.7.20/
admin@TR7LBWAF01>  
TR7 WEB-CLI · C) HTTPS vService'i ad ile, DNS'e sormadan
admin@TR7LBWAF01> sys-cmd curl -v --resolve shop.example.com:443:10.0.7.20 https://shop.example.com/
admin@TR7LBWAF01>  
TR7 WEB-CLI · D) Kendinden imzalı sertifikalı backend, 5 saniye sınırıyla
admin@TR7LBWAF01> sys-cmd curl -k --max-time 5 https://10.20.0.30:8443/health
admin@TR7LBWAF01>  
TR7 WEB-CLI · E) Yönlendirme zinciri ve sorgu dizgili adres
admin@TR7LBWAF01> sys-cmd curl -sIL 'http://10.0.7.20/login?next=/app&lang=tr'
admin@TR7LBWAF01>  
TR7 WEB-CLI · F) Yanıt başlıklarından yalnız sunucu satırı
admin@TR7LBWAF01> sys-cmd curl -sI http://10.0.7.20/ | grep Server
admin@TR7LBWAF01>  

Bilinmesi Gerekenler ​

  • Connection refused ile zaman aşımı farkı. Connection refused hedefe ulaşıldığını ama portta servis olmadığını; uzun bekleyip zaman aşımı ise yolda ya da hedefte bir engeli gösterir. Yol için traceroute, port için nmap kullanılır.
  • Yanlış sertifika ya da yanlış site. Aynı IP adresinde birden çok alan adı sunuluyorsa istek IP adresiyle değil --resolve ile adla gönderilir; böylece hem sunucu adı hem Host başlığı doğru gider.
  • WAF engeli. vService'te WAF açıksa test isteği engellenebilir; bu durumda yanıt WAF engelleme sayfası olur ve WAF loglarında görünür.
  • TLS sürümleri ve şifre takımlarının tamamı için sslscan kullanılır.