
我有一個在 中定義的 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
(通過 ssh 隧道)
問題:我覺得應該有一個更簡單的方法來實現這個目標?如果沒有,iptables
命令會是什麼樣子?
答案1
答案2
不確定這裡的正確禮儀(關閉問題?標記為重複?),但我在這裡對此問題有一個可接受的答案:
https://serverfault.com/questions/982063/transparent-ssh-tunneling