ฉันพยายามใช้ ssh เพื่อเข้าสู่เซิร์ฟเวอร์ระยะไกลและฉันมีการติดตั้ง ProxyCommand ใน ~ / .ssh / config เพื่อใช้พร็อกซี (ติดตั้งผ่าน PuTTY เพื่อเชื่อมต่อกับ VPN) ProxyCommand ใช้ nc เพื่อเชื่อมต่อผ่านพร็อกซี (ดังอธิบายในคำตอบ ฉันจะใช้ SSH กับพร็อกซี SOCKS 5 ได้อย่างไร ) แต่ดูเหมือนว่า nc ไม่สามารถแก้ไขชื่อโฮสต์ให้เป็น IP ผ่าน / etc / hosts ก่อนที่จะส่งไปยังพร็อกซีและพร็อกซีไม่ทราบวิธีการแก้ไขชื่อโฮสต์
ตัวอย่างเช่น
$ cat /etc/hosts
127.0.0.1 localhost
12.34.56.78 hostname1
12.34.56.79 hostname2
$ cat ~/.ssh/config
ProxyCommand /usr/bin/nc -x 127.0.0.1:7777 %h %p
โปรดทราบว่าพอร์ต 7777 ถูกกำหนดค่าเป็นพอร์ตไดนามิกใน PuTTY
$ cat /etc/resolv.conf
lookup file bind
$ cat /etc/nsswitch.conf
hosts: files dns
ถ้าฉันใช้ ssh user@12.34.56.78 การเชื่อมต่อจะสำเร็จ แต่ถ้าฉันใช้ ssh user @ hostname1 แล้ว hostname1 จะถูกส่งไปยังพร็อกซีแทนที่จะแก้ไขเป็น 12.34.56.78 และการเชื่อมต่อล้มเหลว ไม่มีใครรู้ว่าการกำหนดค่าใด ๆ ที่จะต้องทำให้การแก้ปัญหาชื่อโฮสต์ netcat ผ่าน / etc / hosts ทำงานใน cygwin หรือไม่
ขอบคุณ