内网穿透教程

内网穿透教程

本文介绍如何使用 FRP(Fast Reverse Proxy)工具实现内网穿透,包括配置 Azure 公网 IP、安装 Docker 和 FRP,以及在内网服务器上配置和运行 FRP 客户端。

一、配置公网 IP

1. 申请 Azure 公网 IP

  1. 登录到 Azure 门户
  2. 创建一个新的虚拟机实例,建议使用1G内存的。
  3. 在虚拟机配置中,确保选择了一个公共 IP 地址。
  4. 完成虚拟机创建,并记下公共 IP 地址。

2. 安装 Docker

在 Azure 虚拟机上安装 Docker:

# 更新包列表并安装必要的软件包 sudo apt-get update sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common # 添加 Docker 官方 GPG 密钥 curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - # 添加 Docker APT 仓库 sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" # 更新包列表并安装 Docker sudo apt-get update sudo apt-get install -y docker-ce

3. 安装 FRP

1. 在 Azure 虚拟机上安装并配置 FRP:

# 创建frp文件夹 mkdir frp cd frp wget https://github.com/fatedier/frp/releases/download/v0.39.1/frp_0.39.1_linux_amd64.tar.gz tar -xzf frp_0.39.1_linux_amd64.tar.gz cd frp_0.39.1_linux_amd64

2. 创建并编辑 frps.toml 配置文件,frps.toml 配置文件如下:

[common] bind_port = 7000 # Dashboard settings (optional) dashboard_port = 7500 dashboard_user = "你的用户名" dashboard_pwd = "你的密码" # HTTP and HTTPS settings (optional) vhost_http_port = 80 vhost_https_port = 443 # Log settings (optional) log_file = "/frp/frps.log" log_level = "info" log_max_days = 3 token = "你的token"

注意Dashboard settings为登陆Dashboard的密码,token为连接公网需要的密码

3. 运行FRP服务器

sudo docker run --restart=always --network host -d -v /home/Xinhao/frp/frps.toml:/frp/frps.toml --name frps snowdreamtech/frps -c /frp/frps.toml

4. 如果修改了frps.toml 配置文件需要删除并重新运行FRP服务器

代码为:

sudo docker stop frps sudo docker rm frps sudo docker run --restart=always --network host -d -v /home/Xinhao/frp/frps.toml:/frp/frps.toml --name frps snowdreamtech/frps -c /frp/frps.toml

5. 开启Azure的端口

添加出站和入站规则,目标端口包括bind_port(7000)、dashboard_port(7500)、与内网进行通讯的端口(后面用)(8080)
image

6. 验证是否成功

在 Azure 虚拟机上运行命令sudo ss -tuln | grep 7000,确保 FRP 服务器正在监听正确的端口
在浏览器中访问http://公网IP:dashboard_port/ ,输入Dashboard的账户和密码后可以访问
image

二、配置内网

1. 安装 FRP

在内网服务器上安装并配置 FRP 客户端:

1. 下载 并解压FRP:

srun -p mem --pty bash
mkdir frp cd frp wget https://github.com/fatedier/frp/releases/download/v0.39.1/frp_0.39.1_linux_amd64.tar.gz tar -xzf frp_0.39.1_linux_amd64.tar.gz cd frp_0.39.1_linux_amd64

2. 创建并编辑 frpc.ini 配置文件:

[common] server_addr = 公网的IP server_port = frps.toml中的bind_port(7000token = "frps.toml中的的token" [web] type = tcp local_ip = 127.0.0.1 local_port = 22 remote_port = 8080

server_port与frps.toml的bind_port对应,local_ip = 127.0.0.1指内网上的本机,local_port为连接内网的端口,remote_port是外网的端口,用于连接内网。

3. 启动与验证frp

启动frp

./frpc -c frpc.ini

在http://公网IP:dashboard_port/ 的仪表盘中可以查看到
image
在浏览器中访问 "http://公网IP/8080" 就等于访问内网,账户密码则与登陆内网所需的账户密码一致

三、提交脚本长期运行

使用 SLURM 在内网服务器上提交一个长期运行的任务来执行 frpc:

1.创建 start_frpc.sh 启动脚本:

#!/bin/bash # 确保 frpc 可执行文件和配置文件的路径正确 FRPC_DIR="/frp/frp_0.39.1_linux_amd64" CONFIG_FILE="$FRPC_DIR/frpc.ini" # 启动 frpc cd $FRPC_DIR nohup ./frpc -c $CONFIG_FILE &

2. 给予脚本执行权限:

chmod +x start_frpc.sh

3. 启动 screen 会话: screen

4. 使用 srun 提交任务:

srun -p mem --mem=2G --cpus-per-task=1 --time=180-00:00:00 --job-name=frpc_task --pty bash

4. 在分配到节点后,运行启动脚本:

/绝对路径/start_frpc.sh

5. 分离 screen 会话:

按 Ctrl + a,然后按 d

四、验证连接

1. 检查 frpc 日志:

tail -f nohup.out


__EOF__

本文作者skypanxh
本文链接https://www.cnblogs.com/skypanxh/p/18232753.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   skypanxh  阅读(254)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示