我在 ubuntu 虛擬伺服器上,希望將客戶端連接埠轉送到透過 ssh 連線的主機,並且已將 putty 配置為遠端連接埠轉送連接埠 1802。
我想要實現的目標:我希望我的虛擬伺服器充當應用程式給定連接埠的代理程式。我希望能夠使用該連接埠連接到我的虛擬伺服器,但被重定向到反向代理(主機):
用戶端 A <== xxxx:1802 ==> vserver (連接埠轉送) <== 反向代理/ssh 連線 ==> 主機
我已經擁有的:主機已經有一個使用 putty 的遠端連接埠轉送以及到我的虛擬伺服器的 ssh 連線。我所缺少的只是連接埠轉發,以便使用指定連接埠連接到虛擬伺服器的客戶端被 DNAT 到主機。
這是我到目前為止所嘗試的:我嘗試添加listen 1802;
我的 nginx 伺服器配置,但這根本不起作用(我認為我缺少proxy_pass
配置)。然後我嘗試使用 iptables:
iptables -t nat -A PREROUTING -i -p udp --dport 1802 -j DNAT --to-destination 127.0.0.1:1802
iptables -t nat -A PREROUTING -i -p tcp --dport 1802 -j DNAT --to-destination 127.0.0.1:1802
iptables-save
但我不確定參數--to-destination
。另外,我省略了該-i
值,以便所有介面都用於 iptables 條目。
答案1
就我而言,需要GatewayPorts yes
添加。/etc/ssh/sshd_config
重新啟動 ssh 還不夠,我必須重新啟動虛擬伺服器 - 然後它就起作用了。我甚至不需要任何特殊的 iptables 條目,因為所有連接埠都已處於接受狀態。