Open geniusyjiang opened 1 year ago
通过netstat确认端口映射是成功的,portainer中也可以看到。
如果需要所有网段访问,可以尝试将本地地址改成 0.0.0.0 尝试
如果需要所有网段访问,可以尝试将本地地址改成 0.0.0.0 尝试
不加IP默认就是绑定的0.0.0.0,netstat能看到,但不管是本机curl还是局域网其他电脑设置代理都打不开任何网页。
贴一下你使用的命令吧,我本地使用 zerotier 的地址是可以正常访问的,是本地虚拟网卡的一个 ip,可以正常绑定和访问 同时,你是使用自己编译的镜像还是我编译的镜像?
贴一下你使用的命令吧,我本地使用 zerotier 的地址是可以正常访问的,是本地虚拟网卡的一个 ip,可以正常绑定和访问 同时,你是使用自己编译的镜像还是我编译的镜像?
就用的docker hub上你编译的镜像,命令里面就加了个restart,这个肯定不影响的,详细命令如下:
docker run -d -it --device=/dev/net/tun --cap-add=NET_ADMIN -p 10888:1080 --name=topsap --restart=unless-stopped -e USER_NAME=#user -e PASSWORD=#pass -e SERVER_ADDRESS=#url libra146/docker-topsap
netstat也能明确看到端口映射是没问题的。
root@debian:/mnt/data/apps/topsap# netstat -pln | grep 10888
tcp 0 0 0.0.0.0:10888 0.0.0.0:* LISTEN 1551/docker-proxy
tcp6 0 0 :::10888 :::* LISTEN 1565/docker-proxy
另外,也可以排除防火墙的问题,因为本机curl socks5 局域网ip:10888都不通,防火墙我也是开放了192.168.0.0网段访问所有端口的。
另外,也可以排除防火墙的问题,因为本机curl socks5 局域网ip:10888都不通,防火墙我也是开放了192.168.0.0网段访问所有端口的。
另外,也可以排除防火墙的问题,因为本机curl socks5 局域网ip:10888都不通,防火墙我也是开放了192.168.0.0网段访问所有端口的。
- 可以尝试关闭防火墙尝试一下吗?
- 可以尝试输出一下sysctl net.ipv4.ip_forward的值看看ip 转发是否打开,如果没有打开,请打开后再尝试一下
1、现在在外面,晚上回去尝试一下关闭防火墙。 2、可以确定是1,这个昨天就怀疑并确认过。
已测试关闭防火墙,问题依旧。
- 确认你本地的内网地址是192.168.1.77
- 你的电脑还有没有其他网卡,用其他网卡的内网地址试试呢
1、肯定可以确认了,而且docker版nginx通过这个ip也是可以正常访问的,所以可以确定docker也没问题。nginx和这个topsap的端口绑定情况如下:
root@debian:~# netstat -pln | grep 9443
tcp 0 0 0.0.0.0:9443 0.0.0.0:* LISTEN 1589/nginx: master
tcp6 0 0 :::9443 :::* LISTEN 1589/nginx: master
root@debian:~# netstat -pln | grep 10888
tcp 0 0 0.0.0.0:10888 0.0.0.0:* LISTEN 92667/docker-proxy
tcp6 0 0 :::10888 :::* LISTEN 92675/docker-proxy
可见端口绑定是完全一模一样的。而nginx是可以正常通过192.168.1.77这个ip访问的(忽略证书错误):
root@debian:~# curl https://192.168.1.77:9443
curl: (60) SSL: no alternative certificate subject name matches target host name '192.168.1.77'
More details here: https://curl.se/docs/sslcerts.html
curl failed to verify the legitimacy of the server and therefore could not
establish a secure connection to it. To learn more about this situation and
how to fix it, please visit the web page mentioned above.
2、只有这一个esxi的虚拟网卡,剩下的都是docker的虚拟网卡。
😂我觉得目前来说如果着急使用的话可以先通过本地 localhost 转发一下端口来使用,根据目前的信息来看,我也没有太多的头绪,能想到的可能就是 docker 容器中使用到了 iptables,用来处理路由表相关的信息,nginx 肯定是没有用到的,docker 中的 iptables 可能还跟宿主机的内核版本有关系,但是我没有具体研究。。
个人感觉问题也是出在docker里面的iptables,因为其他docker都是可以通过192.168.1.77:绑定端口 来访问的,唯一有问题的就是这个topsap。我先暂时想办法用着,希望后面能解决。
而且运行“curl --socks5 192.168.1.77:10888 网址”命令是卡死,一直不出结果,并不是提示”Connection refused“或其他的。
已经将启动代码中的127.0.0.1去掉,也试过改为本机内网地址(192.168.1.77),10888端口映射的内网1080端口,通过“curl --socks5 127.0.0.1:10888 网址”可以访问,但通过“curl --socks5 192.168.1.77:10888 网址”就打不开,试过换端口,可以确定肯定不是端口被占用。什么方法都试过了,实在没办法。可以确定docker的端口映射是没问题的,因为docker版nginx映射的9443端口都可能在内网用192.168.1.77:9443打开。
日志有一条警告,但感觉应该不成问题,因为下一条显示启动成功,也能通过127.0.0.1:10888访问(见上面示例)。关键的几条日志如下: