python 写一个端口转发从而实现局域网内没有外网的电脑可以远程连接代码
时间: 2024-02-03 18:04:41 浏览: 167
python利用隧道转发技术实现远程监控,不仅限用于局域网,把forwardServer.py中转服务器放到具有公网ip的服务器
以下是一个简单的 Python 端口转发脚本,可以实现局域网内没有外网的电脑可以远程连接:
```python
import socket
def port_forward(local_port, remote_host, remote_port):
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as local_sock:
local_sock.bind(('0.0.0.0', local_port))
local_sock.listen(1)
print(f'Listening on port {local_port}...')
while True:
conn, addr = local_sock.accept()
print(f'Accepted connection from {addr[0]}:{addr[1]}')
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as remote_sock:
remote_sock.connect((remote_host, remote_port))
print(f'Connected to {remote_host}:{remote_port}')
while True:
data = conn.recv(1024)
if not data:
break
remote_sock.sendall(data)
print(f'Sent {len(data)} bytes to {remote_host}:{remote_port}')
conn.close()
print(f'Connection closed by {addr[0]}:{addr[1]}')
if __name__ == '__main__':
port_forward(8080, 'example.com', 80)
```
在这个例子中,我们将本地端口 `8080` 转发到远程服务器 `example.com:80` 上。当有连接到本地 `8080` 端口的请求时,脚本会将请求转发到远程服务器上,并将响应返回给本地客户端。你可以根据需要修改本地和远程端口。
阅读全文