在MacOS Mojave上外部访问TCP端口8080

时间:2018-11-11 09:11:45

标签: macos sockets tcp

我试图从同一Wi-Fi局域网上的任何外部客户端访问我的Macbook上的监听tcp套接字。

这适用于特定端口,例如。 8000,但其他端口除外,例如8080、8081、8082

如何从外部打开或访问8080 tcp端口?

在端口8000上的工作步骤

服务器

$ nc -lv 8000

客户

$ nc -z 192.168.101.98 8000
Connection to 192.168.101.98 port 8000 [tcp/irdmi] succeeded!

端口8080上的非工作步骤

服务器

$ nc -lv 8080

客户

$ nc -z 192.168.101.98 8080 (命令只是挂起)

诊断

$ lsof -P -i TCP:8000
COMMAND   PID   USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
nc      75782 ...    3u  IPv4 0x5be3e11e5a732339      0t0  TCP *:8000 (LISTEN)

$ lsof -P -i TCP:8080
COMMAND   PID   USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
nc      75952 ...    3u  IPv4 0x5be3e11e581e2fb9      0t0  TCP *:8080 (LISTEN)

$ sudo pfctl -s all | grep Status
No ALTQ support in kernel
ALTQ related functions disabled
Status: Disabled                              Debug: Urgent

我正在运行macOS Mojave 10.14.1(在10.14上也具有相同的行为)。

更新

我什么也没改变,一切突然变得正常。我很好奇是什么造成了变化。如果一切正常,将结束问题。

1 个答案:

答案 0 :(得分:0)

解决方案

我安装了 Endpoint Security VPN 客户端。这始终会激活防火墙,从而阻止某些端口。即使没有连接到VPN服务器。

通过关闭客户端守护程序,我可以再次访问所有端口。

关闭守护程序的步骤

发件人:https://gist.github.com/phoob/671e65332c86682d5674

杀死客户端并运行命令以停止守护程序:

sudo launchctl unload /Library/LaunchDaemons/com.checkpoint.epc.service.plist
sudo kextunload /Library/Extensions/cpfw.kext