USER:
ssh的这个参数有没有什么有趣的方法
比如我跟朋友玩mc游戏,通过服务器进行穿透?
-R (remote forward):远程端口转发(反向代理/内网穿透)。
ssh -R 8080:localhost:3000 user@server_ip。ASSISTANT:
你提到的用 ssh -R 来和朋友玩 Minecraft(MC),不仅完全可行,而且是极其经典且实用的“内网穿透”玩法!
SSH 的 -R 参数其实就是一个**“免费的、自带的、轻量级 Ngrok/花生壳”**。只要你有一台带公网 IP 的云服务器(VPS),就能玩出很多花样。
下面我先教你怎么完美实现 MC 联机,然后再分享几个其他有趣的硬核玩法。
Minecraft Java 版默认使用 TCP 25565 端口。你可以把本地电脑开启的 MC 房间,直接映射到云服务器上。
默认情况下,SSH 出于安全考虑,-R 暴露在远程服务器上的端口只允许本地访问(绑定在 127.0.0.1)。你的朋友是通过公网访问的,所以他们连不上。
解决步骤:
/etc/ssh/sshd_config 文件,找到或添加这一行:
1GatewayPorts yes
21sudo systemctl restart sshd
21ssh -R 0.0.0.0:25565:localhost:25565 root@你的云服务器IP
20.0.0.0 的 25565 端口,反向代理到本地电脑的 25565 端口)25565 端口。结果:你的朋友在 MC 里输入 你的云服务器IP:25565,直接秒进你的本地房间!(注意:SSH 隧道默认只支持 TCP,所以这招适用于 MC Java版。如果是基岩版用的 UDP,需要配合其他工具)。
假设你的朋友(或者长辈)电脑在内网,遇到问题需要你远程桌面控制,但他们没有公网 IP,也没有装远控软件,怎么办?
如果你有一台云服务器,你可以让他们敲一行命令,把他们电脑的远程桌面端口(Windows 是 3389)“推”到你的服务器上:
1ssh -R 8888:localhost:3389 root@你的云服务器IP
2你的云服务器IP:8888,就能直接弹出朋友电脑的登录界面,开始远程协助。现在很多人在本地电脑用 RTX 4090 或 Mac 跑本地大模型(比如使用 Ollama 或 Stable Diffusion),你想向朋友炫耀,或者分享给不在同一局域网的同事使用。
Ollama 默认运行在本地 11434 端口,WebUI 运行在 8080 端口。
一行命令:
1ssh -R 8080:localhost:8080 root@你的云服务器IP
2朋友只要在浏览器输入 http://你的云服务器IP:8080,就能直接访问并使用你本地显卡算力生成的 AI 界面,所有的计算全在你本地机器上完成!
开发过企业微信机器人、GitHub 自动化脚本的人都知道,这些平台要求你提供一个公网能够访问的 URL 来接收它们发来的事件(Webhook)。
但代码还在你的电脑上(比如 http://localhost:5000),还没部署,没法接收外网请求。
不用花钱买内网穿透服务,直接执行:
1ssh -R 5000:localhost:5000 root@你的云服务器IP
2然后去微信后台填入 http://你的云服务器IP:5000/api/webhook,你本地的断点立刻就能接收到真实环境发来的数据,调试极其舒服!
SSH 隧道有个缺点:如果网络稍微波动,或者一段时间没有数据传输,它可能会悄悄断开,导致你 MC 掉线。
升级方案:使用 autossh
autossh 会监控 SSH 连接,一旦断开它会自动帮你重连。
1# 安装 autossh (Linux/macOS)
2sudo apt install autossh # 或者 brew install autossh
3
4# 使用 autossh 替代 ssh,并加上保活参数
5autossh -M 0 -o "ServerAliveInterval 30" -o "ServerAliveCountMax 3" -R 0.0.0.0:25565:localhost:25565 root@你的云服务器IP
6这样挂在后台,只要你电脑没关,内网穿透就会像牛皮糖一样死死贴住云服务器,永远不掉线。