java+服务器套接字+防火墙

ne5o7dgx  于 2021-07-09  发布在  Java
关注(0)|答案(1)|浏览(407)

我有一个用java编写的服务器,带有serversocket。
我有一个客户端,它在一个公司防火墙上,除了公共端口,它阻止了所有的东西。
我已在smtp端口(#25)上启动服务器。
有防火墙的用户连接到它,到目前为止一切正常。
然后服务器处理serversocket.accept()。据我所知,它会在随机端口上创建一个套接字(每次端口号不同时)。因为防火墙而失败。
我的问题是-如何让serversocket.accept()从白名单中为套接字选择端口?我知道它不会适合大规模的在线,但我想让我的朋友之一,能够连接到我的服务器。
有可能吗?怎么做?

d5vmydt9

d5vmydt91#

服务器套接字没有选择随机端口。是客户端套接字选择了随机端口。我的猜测是,你的防火墙是聪明的,它知道检测,如果连接是由某种dpi(深包检查)批准。
如果你想误导它,你可以试着在前2-3个包中运行看起来像smtp的数据,然后切换到你的协议。
另一种选择是在系统外使用一种连接器,在这种情况下,两台机器都是通过第三个客户机连接的客户机(有许多这样的代理)

相关问题