python实现将局域网内网端口暴露到公网访问内网穿透的代码
代码语言:python
所属分类:其他
代码描述:python实现将局域网内网端口暴露到公网访问内网穿透的代码
代码标签: python 局域网 内网 端口 暴露 公网 访问 内网 穿透 代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
# ## 使用说明 # ### 1. 保存代码 # 将代码保存为 `tunnel.py` # ### 2. 在公网服务器上运行服务端 # ```bash # # 直接运行 # python3 tunnel.py server --control-port 8888 --public-port 8080 # # 后台运行 # nohup python3 tunnel.py server --control-port 8888 --public-port 8080 > tunnel.log 2>&1 & # ``` # **参数说明:** # - `--control-port 8888`:客户端连接的控制端口 # - `--public-port 8080`:外部访问的公网端口 # ### 3. 在内网机器上运行客户端 # 假设你的内网有一个HTTP服务运行在80端口: # ```bash # # 连接到服务器 # python3 tunnel.py client --server-host 1.2.3.4 --control-port 8888 --local-port 80 # # 指定本地服务地址 # python3 tunnel.py client --server-host 1.2.3.4 --local-host 192.168.1.100 --local-port 8000 # ``` # **参数说明:** # - `--server-host 1.2.3.4`:公网服务器的IP地址(必需) # - `--control-port 8888`:服务器的控制端口 # - `--local-host 127.0.0.1`:本地服务地址 # - `--local-port 80`:本地服务端口 # ### 4. 访问内网服务 # 在浏览器中访问: # ``` # http://<服务器公网IP>:8080 # ``` # ## 完整示例 # ### 示例1:暴露内网Web服务 # **场景:**内网有一个运行在8000端口的Web服务 # 1. **公网服务器(IP: 1.2.3.4):** # ```bash # python3 tunnel.py server --control-port 8888 --public-port 8080 # ``` # 2. **内网机器:** # ```bash # python3 tunnel.py client --server-host 1.2.3.4 --control-port 8888 --local-port 8000 # ``` # 3. **访问:** # ``` # http://1.2.3.4:8080 # ``` # ### 示例2:暴露内网SSH服务 # **场景:**暴露内网22端口的SSH服务 # 1. **公网服务器:** # ```bash # python3 tunnel.py server --control-port 8888 --public-port 2222 # ``` # 2. **内网机器:** # ```bash # python3 tunnel.py client --server-host 1.2.3.4 --control-port 8888 --local-port 22 # ``` # 3. **远程SSH连接:** # ```bash # ssh -p 2222 user@1.2.3.4 # ``` # ### 示例3:暴露MySQL数据库 # **场景:**暴露内网MySQL服务(3306端口) # 1. **公网服务器:** # ```bash # python3 tunnel.py server --control-port 8888 --public-port 3306 # ``` # 2. **内网机器:** # ```bash # python3 tunnel.py client --server-host 1.2.3.4 --control-port 8888 --local-port 3306 # ``` # 3. **远程连接:** # ```bash # mysql -h 1.2.3.4 -P 3306 -u root -p # ``` # ## 使用systemd管理服务(Linux) # ### 服务端配置 # 创建文件 `/etc/systemd/system/tunnel-server.service`: # ```ini # [Unit] # Description=Tunnel Server # After=network.target # [Service] # Type=simple # User=root # WorkingDirectory=/opt/tunnel # ExecStart=/usr/bin/python3 /opt/tunnel/tunnel.py server --control-port 8888 --public-port 8080 # Restart=always # RestartSec=5 # [Install] # WantedBy=multi-user.target # ``` # ### 客户端配置 # 创建文件 `/etc/systemd/system/tunnel-client.service`: # ```ini # [Unit] # Description=Tunnel Client # After=network.target # [Service] # Type=simple # User=root # WorkingDirectory=/opt/tunnel # ExecStart=/usr/bin/python3 /opt/tunnel/tunnel.py client --server-host 1.2.3.4 --control-port 8888 --local-port 80 # Restart=always # RestartSec=5 # [Install] # WantedBy=mul.........完整代码请登录后点击上方下载按钮下载查看















网友评论0