我有一个通过VPN公开TCP服务的问题。我正在MacOS下通过Tunnelblick应用程序使用OpenVPN。
ifconfig 为我的VPN网络接口提供以下输出:
$ifconfig tun0
tun0: flags=8851<UP,POINTOPOINT,RUNNING,SIMPLEX,MULTICAST> mtu 1500
inet A.B.C.D --> A.B.C.D+1 netmask 0xffffffff
open (pid 46308)
如果我运行任何服务,请在Python Flask端点之后说(也测试了Netcat或Socat侦听,但遇到了相同的问题):
from flask import Flask
f = Flask('test')
@f.route('/'):
def ping():
return 'it works\n'
f.run(host='A.B.C.D')
我假设底层创建的套接字/ TCP连接将绑定到 tun0 接口,因为使用的绑定IP地址是属于此网络接口的IP地址。
任何尝试访问此Web服务的尝试都会导致超时:本地或来自连接到同一VPN的另一台计算机。
$ ping A.B.C.D
-> OK
$ curl A.B.C.D:5000
-> Request timeout
我对正在发生的事情一无所知,怀疑是MacOS的有害行为,但是来自属于同一VPN的Linux机器的相同测试也会导致相同的问题。
谢谢。