我试图通过在azure门户网站上运行自己的mud来重温大学时光,但在与外界连接时遇到了困难。
对于那些不知道的人,这有一个相当简单的接口,它监听您选择的端口,并在传入时发出描述符:
https://github.com/InfiniteAxis/SmaugFUSS/blob/master/src/comm.c
我在azure中建立了一个ubuntu vm,它有一个ip地址,我可以通过ssh从我的机器连接到这个地址,并成功编译和运行mud。我可以使用telnet连接ssh会话内的端口4020,但无法从我的计算机连接到端口4020。
netstat -an | grep :4020
tcp 0 0 0.0.0.0:4020 0.0.0.0:* LISTEN
它似乎正在正确侦听,因此我尝试将入站安全规则添加到网络安全组。我给它一个比ssh规则更高的优先级(更低的数目),ssh规则似乎将所有连接到的tcp端口重定向到22,但是仍然无法连接。
两条规则:
Source: Any, Protocol: TCP, Port: 4020, Destination: Any, Port: 4020
Source: Any, Protocol: TCP, Port: *, Destination: Any, Port: 22
ubuntu中似乎没有启用任何防火墙(ufw被禁用),但我无法连接。
有人知道我下一步应该去哪里吗?我觉得我错过了一些很明显的东西。
最佳答案
您需要将源端口设置为*
,而不是4020
。这是指定通信量从何处开始,而不是从何处开始。