我想玩一个托管在端口 25565 上的游戏(minecraft!),但我大学的防火墙不允许该端口。
我在离大学不远的地方有一台运行 Linux 的专用服务器,所以我认为有一种方法可以通过它来建立隧道(但我以前从未这样做过,也没有隧道方面的知识/经验)
速度可能会很慢,但总比完全不能玩要好。是否可以只使用 SSH,还是需要其他客户端/服务器软件?我的服务器安装了 OpenSSH。另外,我用来玩游戏的电脑运行的是 Ubuntu。
我尝试过搜索,但似乎针对不同类型的问题有很多不同的解决方案 =/
答案1
最简单的方法是使用油灰(客户端应用程序)。除了允许传出连接的防火墙规则外,远程端不需要任何东西
设置:
- 在 putty 中建立到你的 unix 机器的新连接。(添加主机详细信息等,暂时不要连接)
- 完成所有设置后,转到 Putty 树视图中的连接 -> SSH -> 隧道。
- 接下来在源端口中输入 25565,并将目标留空。
- 最后在第一个组合框中选择动态。
- 确保保存所有内容,然后单击打开按钮
这将在本地端口 25565 上创建一个隧道,连接到远程站点上的任何目标。这还假设您可以隧道连接 minecraft(您可能需要设置 IE 设置以使用 SSH 隧道,因为游戏有时在无法连接时会使用它)
如果你不能默认使用 Minecraft 隧道,请使用类似的应用程序代理上限强制所有传出连接通过隧道。
答案2
我画了一些草图
为了便于理解隧道机制,请观看这些草图。输入 ssh 隧道命令的机器称为»您的主人«。
介绍
当地的:
-L Specifies that the given port on the local (client) host is to be forwarded to the given host and port on the remote side.
ssh -L sourcePort:forwardToHost:onPort connectToHost
意思是:使用 ssh 连接到connectToHost
,并将所有连接尝试转发到当地的sourcePort
onPort
到名为 的机器上的端口forwardToHost
,可以从该connectToHost
机器访问。偏僻的:
-R Specifies that the given port on the remote (server) host is to be forwarded to the given host and port on the local side.
ssh -R sourcePort:forwardToHost:onPort connectToHost
意思是:使用 ssh 连接到connectToHost
,并将所有连接尝试转发到偏僻的sourcePort
到onPort
名为 的机器上的端口forwardToHost
,可以从您的本地机器访问该端口。
你的例子
第二幅图代表了您的场景。这remotehost
是您的距离大学不远的运行 Linux 的专用服务器。这farawayhost
是您要通过其粉色端口连接的被阻止的 minecraft 服务器25565
。
ssh -L 12345:minecraftServerIP:25565 dedicatedServer
绿色端口的端口号为12345
。您现在可以通过连接到来访问 minecraft 服务器
localhost:12345
当然,您可以将绿色端口的号码更改12345
为您想要的任何号码。
答案3
简单,运行命令
ssh -L 25565:minecraftserverIp:25565 user@remotelinuxbox
然后将服务器添加到你的 minecraft 客户端 localhost:25565
这将允许您通过 ssh 隧道连接到远程 minecraft 服务器。
答案4
您可以更改 Minecraft 运行的端口,因此只需将其设置为 22(因为他们没有阻止 SSH),然后您就可以通过在每个客户端上指定端口来玩。