bp9*_*p99 5 networking linux port ip localhost
taskd几天来,我一直试图让服务器在我的计算机(Arch Linux)上运行。我现在面临的问题是它taskd的配置文档(https://taskwarrior.org/docs/taskserver/troubleshooting-sync.html)说我必须使用输出hostname -f作为地址(我不知道是什么'CN' 缩写)。我也试过用我的本地 IP 地址开头,192.168但这给了我握手错误,你可以在我链接的故障排除指南中找到。
我开始调查了一下,因为我无法从其他机器访问我的任务服务器。我找到了这个:
当我侦听我使用的端口时,让它成为54000,使用nc -l -p 54000,我可以将其视为以下输出ss -lntu | grep 54000:
tcp LISTEN 0 10 0.0.0.0:54000 0.0.0.0:*
Run Code Online (Sandbox Code Playgroud)
而当我开始时taskd,它在同一个端口上侦听,ss给了我:
tcp LISTEN 0 4 127.0.0.1:54000 0.0.0.0:*
Run Code Online (Sandbox Code Playgroud)
现在在另一台机器上,我尝试在侦听时检查端口nc -vv 192.168.x.y 54000(使用服务器的 IP 地址),我发现当本地地址为 时0.0.0.0,端口显示为打开。否则显示为关闭。我认为这是因为127.0.0.1本质上是localhost我无法从我的网络中看到的?
taskd也有一个带有服务器选项的配置文件,我在其中输入了 的输出hostname -f,即watermelon.localdomain,正如文档中所指示的那样。我想这就是翻译成的localhost,对吧?
我将非常感谢您的帮助,在此先感谢!
我设法通过将server配置中的变量设置为 来解决这个问题0.0.0.0:54000,这样我就taskd可以监听端口上的任何地址54000。现在一切正常。taskd我猜关于这个主题的文档有点含糊。
套接字被配置为侦听特定的 IP 和端口。通常有两种主要配置可用于 Socket,而第三种配置并不常见,但会派上用场。
1) 只允许来自运行服务的机器的通信
当您看到127.0.0.1:54000. 只有主机可以访问此服务。您可以使用反向代理之类的东西来允许外部访问,但不允许网络上的任何内容连接到它。
2)从服务器可访问的任何网络上的所有机器
当您看到0.0.0.0:54000. 只要数据包可以到达它,这允许任何东西与该服务对话。
3) 仅针对服务器加入的特定网络
这是在您看到192.168.0.2:54000(或任何 IP)时配置的。这意味着仅允许访问此网络的此子网。
如果要允许你的服务从网络上的其他机器连接,需要绑定在0.0.0.0或者本地IP上。
| 归档时间: |
|
| 查看次数: |
1621 次 |
| 最近记录: |