Ricky Hao

Raspberry(树莓派) 2 B 之内网穿透

想在树莓派上开一个Minecraft服务器来试试性能(zuosi),但是,有一个问题。
因为,树莓派是放在校园网里面的,没有公网IP。所以外网的人就访问不了我的服务器。
刚好,我有一台Aliyun的服务器,有公网IP。那么,我们就可以利用SSH端口转发来实现内网穿透!

首先,我们来看几条命令:

ssh -C -f -N -g -R listen_port:DST_Host:DST_port user@Tunnel_Host
ssh -C -f -N -g -L listen_port:DST_Host:DST_port user@Tunnel_Host

参数解释:

-R port:host:hostport

将远程主机(服务器)的某个端口转发到本地端指定机器的指定端口. 工作原理是这样的, 远程主机上分配了一个 socket 侦听 port 端口, 一旦这个端口上有了连接, 该连接就经过安全通道转向出去, 同时本地主机和 host 的 hostport 端口建立连接. 可以在配置文件中指定端口的转发. 只有用 root 登录远程主机才能转发特权端口. IPv6 地址用另一种格式说明: port/host/hostport

-L port:host:hostport

将本地机(客户机)的某个端口转发到远端指定机器的指定端口. 工作原理是这样的, 本地机器上分配了一个 socket 侦听 port 端口, 一旦这个端口上有了连接, 该连接就经过安全通道转发出去, 同时远程主机和 host 的 hostport 端口建立连接. 可以在配置文件中指定端口的转发. 只有 root 才能转发特权端口. IPv6 地址用另一种格式说明: port/host/hostport

-f Fork into background after authentication.

后台认证用户/密码,通常和-N连用,不用登录到远程主机。

-C Enable compression.

压缩数据传输。

-N Do not execute a shell or command.

不执行脚本或命令,通常与-f连用。

好吧,如果懒得看的话,那么下面简单解释下:
《Raspberry(树莓派) 2 B 之内网穿透》

树莓派的25565端口转发到公网服务器B的25566端口,再在公网服务器内部将端口25565转发到端口25566,这也就意味着,只要客户端访问服务器B的25565端口,那么流量就会被转发到B:25566端口,进而转发到A:25565

有木有很绕?其实就两行命令的事情:
首先,在树莓派上输入:

ssh -NfR *:25566:127.0.0.1:25565 服务器B的用户名@服务器B的IP -p 22

然后输入密码,如果成功就会在后台运行ssh

然后,再在服务器B上运行:

ssh -CNfg -L 25565:localhost:25566 服务器B的用户名@localhost

一样,输入密码,搞定!
这样就可以通过访问服务器B的IP:25565来连接我们的MC服务器了!

点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据