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