Tek seferlik veya ara sıra durumlar için, ProxyCommand yaklaşımı kolayca çok uygundur.
Öte yandan, birkaç eşzamanlı bağlantıya ihtiyacınız varsa veya belki de günlük çalışma için bu komutu sık sık kullanmanız gerektiğinde, sunucunuzda bir ağ adresi çeviri (NAT) kuralı da ayarlamayı düşünebilirsiniz.
Bu, root
önce tek bir NAT kuralını uygulamak için sunucunuzda süper kullanıcı (genellikle ) erişimi gerektirir . O Not olabilir sizin "sunucu" aslında (a Docker biri gibi) bir kap varsa, süper erişimi bile NAT kuralı uygulamak için hiç izin (veya etkin) edilemez yerine bir makine.
Paketle tipik bir Linux sisteminden bahsetmişken, iptables
örnek durumunuz için sunucunuza1 uygulanacak NAT kuralı şöyle olabilir:
iptables -t nat -I POSTROUTING -d <server2-ip-address> -p tcp --dport <server2-port> -j SNAT --to :33101-33109
Bu komut liman yolunda herhangi bir bağlantı yapmak için Linux çekirdeği talimatını server2-port ait server2-ip-adresi o anda kullanılabilir aralık 33101-33109 içinde seçilen bir kaynak bağlantı noktasını kullanarak dışarı çıkmak.
Bu kural yürürlüğe girdiğinde, sunucu2'nize her zamanki gibi bağlanırsınız:
ssh username@server2 -p remote_port
ssh
NAT kuralında belirtilen aralıkta kullanılabilir portlar olduğu sürece, aynı komutu ihtiyacınız olduğu kadar eşzamanlı olarak da kullanabilirsiniz .
Ancak netstat
sunucunuzda çalıştırılan bir (veya eşdeğer komut), sunucunuza2 gönderilen gerçek trafik değiştirilmiş kaynak bağlantı noktası numarasını taşımasına rağmen, bağlantının yerel adresini değiştirilmemiş , rastgele seçilen kaynak bağlantı noktası numarası olarak bildirir .
NAT kuralını geri almak için, komutun yerine bir -D
seçenek dışında komut aynıdır -I
.
NAT kuralının önyükleme sırasında otomatik olarak uygulanması, sunucunuzda hangi Linux dağıtımının bulunduğuna ve zaten bazı güvenlik duvarı yapılandırmasının mevcut olup olmadığına bağlıdır.
BSD benzeri sistemlerle ilgili hiçbir deneyimim yok, ama buna eşdeğer olduğunu düşünüyorum.