我在 中定义了一个 SSH 隧道/etc/ssh/ssh_config
。它包含:
LocalForward 0.0.0.0:8000 some-service:80
LocalForward 0.0.0.0:8001 some-other-service:80
我仍然希望能够通过其原始 DNS 名称访问隧道(例如curl some-service
应该仍然有效,而不必使用curl 0.0.0.0:8000
)
为了做到这一点,我在/etc/hosts
文件中添加了以下内容:
127.0.0.2 some-service
127.0.0.3 some-other-service
现在,我认为我需要一些iptables
可以执行以下操作的命令:
When I see a request to 127.0.0.2:80 I should proxy it to 127.0.0.1:8000
When I see a request to 127.0.0.3:80 I should proxy it to 127.0.0.0:8001
这样,curl some-service
就会解析为127.0.0.2
(via /etc/hosts
,进而代理到127.0.0.1:8000
(via iptables
) ,进而命中some-service:80
(via the ssh tunnel)
问题:我觉得应该有更简单的方法来实现这一点?如果没有,命令应该是什么样iptables
的?
答案1
答案2
不确定这里是否正确(关闭问题?标记为重复?)但我对这个问题有一个可接受的答案:
https://serverfault.com/questions/982063/transparent-ssh-tunneling