Linux

通過兩個區域網路發送流量,通過埠 80 並修改 SSH 隧道。如何設置伺服器

  • May 5, 2015

我想通過埠 3000 將流量發送到主機 B,我可以訪問此圖中的所有節點,這兩個區域網路之間唯一開放的埠是從 Linux Box B 到 Linux Box A 的埠 80。

所以我做了一個“ ”,然後用“ ”ssh -R 1206:192.168.1.10:22 disp@10.10.10.10 -p 80通過隧道返回ssh -L 3000:10.10.10.10:3000 disp@localhost -1206

如果我正確的話,現在監聽 Linux Box A 上的埠 3000 並通過隧道將其發送到 Linux Box B 到埠 3000?我的邏輯正確嗎?

我現在如何將此流量路由到主機 B 上的埠 3000。

如果我想要雙向連接“從 B 到 A”怎麼辦?

ssh 隧道

IMO 你的路由是/IP 範圍有點奇怪,但我想這不是問題的一部分。

我正在猜測,但我希望它仍然有一些幫助。

linux_box_b$ ssh -g -R *:3000:192.168.1.11:3000 disp@10.10.10.10 -p 80

現在,如果您從 host_a 向 linux_box_a:3000 發送內容,它實際上會發送到 host_b:3000。為此,Linux Box A 上的 sshd 必須允許 GatewayPorts 和 AllowTcpForwarding

用於其他方向

linux_box_b$ ssh -g -L *:3000:192.168.1.11:3000 disp@10.10.10.10 -p 80

現在 Linux Box B 在埠 3000 上進行偵聽,並將它們通過隧道連接到主機 A 的埠 3000。

使用此解決方案,儘管始終未加密連接的最後一部分(主機 A 和 Linux Box A 之間以及另一側主機 B 和 Linux Box B 之間)。

對於端到端加密隧道,您可以使用:

linux_box_b$ ssh -g -R *:10022:192.168.1.11:22 disp@10.10.10.10 -p 80
linux_box_b$ ssh -g -L *:10022:192.168.1.11:22 disp@10.10.10.10 -p 80

host_a$ ssh -L 33000:localhost:3000 -p 10022 10.10.10.10

host_b$ ssh -L 33000:localhost:3000 -p 10022 192.168.1.10

現在每個主機(a&b)都必須使用 localhost:33000 作為它們的發送目的地。

引用自:https://serverfault.com/questions/187334