请帮我写一个局域网内端口转发实现没有外网的电脑可以远程连接的代码
时间: 2024-02-17 16:01:01 浏览: 134
实战-局域网访问VMware虚拟机下服务且虚拟机可连外网
3星 · 编辑精心推荐
实现局域网内端口转发可以使用 Python 的 socket 和 threading 模块,下面是一个简单的代码示例:
```python
import socket
import threading
# 监听的本地地址和端口
local_host = "0.0.0.0"
local_port = 22
# 转发到的远程地址和端口
remote_host = "192.168.1.100"
remote_port = 22
def handle_client(client_socket):
remote_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
remote_socket.connect((remote_host, remote_port))
while True:
data = client_socket.recv(4096)
if not data:
break
remote_socket.send(data)
data = remote_socket.recv(4096)
if not data:
break
client_socket.send(data)
client_socket.close()
remote_socket.close()
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind((local_host, local_port))
server_socket.listen(5)
print("[*] Listening on {}:{}".format(local_host, local_port))
while True:
client_socket, address = server_socket.accept()
print("[*] Accepted connection from {}:{}".format(address[0], address[1]))
client_thread = threading.Thread(target=handle_client, args=(client_socket,))
client_thread.start()
```
这个代码会将本地的 22 端口(SSH 端口)转发到远程主机的 22 端口上,实现局域网内的远程连接。需要注意的是,这个代码没有做任何身份验证,如果直接使用可能会存在一定的安全风险。
阅读全文