请帮我写一个局域网内端口转发实现没有外网的电脑可以远程连接的代码 请写出哪个是没有外网的地址和端口
时间: 2024-02-17 19:01:01 浏览: 80
实现局域网内端口转发可以使用 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()
```
其中,local_host 和 local_port 是监听的本地地址和端口,remote_host 和 remote_port 是转发到的远程地址和端口。在这个例子中,local_host 和 local_port 是本地的地址和端口,remote_host 和 remote_port 是远程的地址和端口,需要根据实际情况修改。
在这个例子中,local_host 和 local_port 是没有外网的地址和端口,因为它们是在本地机器上的。而 remote_host 和 remote_port 是有外网的地址和端口,因为它们是远程主机的地址和端口,需要通过外网进行访问。
阅读全文