关于源目端口的一个问题,求教大佬
内网有web应用,内网可以通过ip+端口访问。现在要实现外网访问,由于没有网络安全设备,内网到外网进行了端口摆渡。现在外网机访问内网应用时,端口是动态的,能不能固定成静态的。使用命令netstat -a |findstr 192.168.1.115(本机IP)192.168.1.115:52520 52521 是这两个端口与服务器10.10.11.68:8989通讯。 再刷新一下webd页面,我再执行命令,端口就是会变成 192.168.1.115:63280 63281与服务器10.10.11.68:8989通讯。动态端口通过网闸不安全,想固定某个端口比如28119和通过网闸与内网服务器通讯 没法限定来源端口的,随机的 我记得最基础的socket是可以提前绑定端口再发起连接的,不过对于浏览器的应该不好搞。
不过你知道nginx和caddy这样的工具吗,可以本地反代,让它们来固定一个端口发起请求。 DEATHTOUCH 发表于 2024-2-2 17:26
我记得最基础的socket是可以提前绑定端口再发起连接的,不过对于浏览器的应该不好搞。
不过你知道nginx和c ...
nginx正反向代{过}{滤}理都试过了,流量不会直接到固定的某个端口,caddy这个没有听过{:1_890:} 源端口应该就是随机的啊,毕竟你无法知道发起端的该端口是否被占用 jianxin25351099 发表于 2024-2-4 10:25
nginx正反向代{过}{滤}理都试过了,流量不会直接到固定的某个端口,caddy这个没有听过
要不试试看caddy,实在不行看看能不能自己写一个代{过}{滤}理?我有空也研究一下还有没有什么方法。 研究了一下发现这些基本都不能定源端口,不过我找GPT写了一个脚本,自己改了一下,实现一个简单的本地反代
import http.server
import http.client
class ReverseProxyHandler(http.server.BaseHTTPRequestHandler):
def do_GET(self):
# 目标主机
target_host = '127.0.0.1'
# 目标端口
target_port = 8080
source_address = ('127.0.0.1', 55555) # 这里就是固定发起请求的端口了
target_connection = http.client.HTTPConnection(target_host, target_port, source_address = source_address)
target_connection.request('GET', self.path)
target_response = target_connection.getresponse()
# 转发
self.send_response(target_response.status)
for header in target_response.getheaders():
self.send_header(header, header)
self.end_headers()
self.wfile.write(target_response.read())
if __name__ == '__main__':
# 监听本地端口
server_address = ('127.0.0.1', 60000)
httpd = http.server.HTTPServer(server_address, ReverseProxyHandler)
httpd.serve_forever()
实测浏览器访问 localhost:60000,抓包发现55555端口和8080通信,然后60000把结果返回给浏览器。
nginx反代内网8989端口,你说端口没有固定是不是没有绑定访问ip:端口 DEATHTOUCH 发表于 2024-2-4 15:39
要不试试看caddy,实在不行看看能不能自己写一个代{过}{滤}理?我有空也研究一下还有没有什么方法。
这个我也看了一下手册,好像和nginx是一样的 你好,再见 发表于 2024-2-5 06:05
nginx反代内网8989端口,你说端口没有固定是不是没有绑定访问ip:端口
现在就是没有办法绑定,而且本端的动态端口是随机的
页:
[1]
2