如何通過另一台伺服器轉發埠
我想設置一個小遊戲伺服器和我的朋友一起玩,我支付了一個 vps,但它沒有執行這個遊戲伺服器的硬體。我自己的電腦可以執行伺服器,但是從外部網際網路打開我的電腦的埠對我來說並不是一個真正的選擇。
所以對我來說最理想的是通過我的 vps 從我的電腦轉發一個埠,但我真的沒有任何網路知識,我在網上找到的資訊讓我很困惑。
據我了解,這可能是通過 ssh 實現的?
我看到這個人在做類似的事情: 如何將埠從一台機器轉發到另一台機器?
不過,我對這個問題得到的遮陽篷有點困惑。它提到做:
ssh -L 2222:localhost:8888 -N -o GatewayPorts=yes hostname-of-M
在問題中,M 應該是主機,S 應該是路由流量的機器伺服器。anwsering 的人提到:“您可以使用 localhost 而不是 M”,這讓我認為您應該從機器 M 執行此命令
但是如果 M 是 localhost,那麼在這個命令中你實際上是在哪裡連接到 S?
我嘗試使用我的 vps 的 ip 而不是“hostname-of-M”,但這似乎沒有多大作用。
所以這就是我所在的位置,我認為應該可以通過 ssh 實現?但我對此並不完全確定?只有當 M 的 ip 從 S 可見時,這個 ssh 東西才可能,然後我應該從 S 執行 ssh 命令嗎?我只是對這個命令應該做什麼感到非常困惑。所以……我是否在正確的軌道上但只是錯過了一步?還是我需要一種完全不同的方法?
我試過一件事,希望你也可以試試。我已經在具有公共 IP 的 VPS 上安裝了 OpenVPN 伺服器,並將我的本地電腦連接到 VPN 伺服器。在這種情況下
VPS 公網 IP:xxxx
VPS 內部 Openvpn 隧道 IP:10.8.0.1
本機 Openvpn 隧道 IP:10.8.0.2
python3 -m http.server
在本地機器上啟動,該機器在埠上為 http 伺服器提供服務8000
。在vps 伺服器上執行
ssh -L 8080:10.8.0.2:8000 -N -o GatewayPorts=yes username@10.8.0.2
並繁榮!所以從現在開始,任何來自 8080 埠的請求都會被轉發到我的本地機器的 8000 埠。我可以使用 VPS 公共 IP 從 Internet 連接到我的本地電腦
x.x.x.x:8080