使用 IPv6 配合动态域名解析虽然可以进行公网的远程访问,但是同时需要你所处的环境适用 IPv6 才行。笔者在实际体验中发现,有些公共场合不支持 IPv6 网络,所以我们只能通过 IPv4 对设备进行访问,这就需要进行内网穿透,需要把内网的地址映射到公网上。这就需要一台拥有 IPv4 的公网服务器,以及 FRP 内网穿透工具。
一、公网服务器
可以通过阿里云等云服务商申请,如果单纯做穿透服务,1 核 2G 的服务器就够用了。
二、FRP 内网穿透
FRP 是一款高性能的反向代理工具,支持 TCP、UDP、HTTP、HTTPS 协议。GitHub 原址
2.1 下载 FRP 并解压
wget https://github.com/fatedier/frp/releases/download/v0.47.0/frp_0.47.0_linux_amd64.tar.gz
tar -zxvf frp_0.47.0_linux_amd64.tar.gz
rm frp_0.47.0_linux_amd64.tar.gz
cd frp_0.47.0_linux_amd64
一般来说:客户端(需要映射的主机)选择 frpc,服务端(你拥有的公网云服务器)选择 frps。
2.2 服务端配置(frps.ini)
[common]
bind_port = 7000
vhost_http_port = 8086
dashboard_port = 7500
token = 你的token码
dashboard_user = 你的用户名
dashboard_pwd = 你的密码
2.3 客户端配置(frpc.ini)
[common]
server_addr = 你的服务端ip地址
server_port = 7000
token = 你的token码
[自定义的名字]
type = tcp
local_ip = 你的主机ip地址
local_port = 要转发的端口
remote_port = 设定映射的端口
custom_domains = 自定义的名字
三、配置开机自启(Systemd)
3.1 服务端 - frps.service
创建 service 文件:
sudo touch /etc/systemd/system/frps.service
编辑 /etc/systemd/system/frps.service,填入以下内容:
[Unit]
Description=Frp Service
After=network.target syslog.target
Wants=network.target
[Service]
Type=simple
Restart=on-failure
RestartSec=5s
ExecStart=/bin/bash -c '/路径/frps -c 路径/frps.ini'
[Install]
WantedBy=multi-user.target
设置开机自启并启动:
sudo systemctl enable frps
sudo systemctl start frps
sudo systemctl status frps
3.2 客户端 - frpc.service
创建 service 文件:
sudo touch /etc/systemd/system/frpc.service
编辑 /etc/systemd/system/frpc.service:
[Unit]
Description=Frp client
After=network.target syslog.target
Wants=network.target
[Service]
Type=simple
Restart=on-failure
RestartSec=5s
ExecStart=/bin/bash -c '/path/to/frpc -c /path/to/frpc.ini'
[Install]
WantedBy=multi-user.target
设置开机自启并启动:
sudo systemctl enable frpc
sudo systemctl start frpc
sudo systemctl status frpc

快点过来帮我配置frp,内网穿透,搞不定啊