FRP 内网穿透
· 阅读需 3 分钟
利用 frp 我我们可以把自己的私人电脑暴露在公网,当云服务器一样使用
所需资源
- 一台云主机
- 家用主机
下载
去 frp 上下载对应的安装包,解压
$ ls ~/frp/
frpc frpc.toml frps frps.toml LICENSE
其中 frpc 是客户端运行在家用主机,frps 是服务端运行在云主机
配置
- 云主机配置
- 家用主机配置
frps.toml
[common]
bind_port = 7000
token = your_token # 和家用主机保持一致
# 添加HTTP和HTTPS虚拟主机端口
vhost_http_port = 80
vhost_https_port = 443
frpc.toml
[common]
server_addr = your_server_host # 云主机ip 或者域名
server_port = 7000
token = your_token # 和服务端要一致
# SSH服务转发
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 2222
# HTTP 服务转发
[web]
type = http
local_ip = 127.0.0.1
local_port = 80
custom_domains = www.example.com, api.example.com # 这里添加要转发的域名
# HTTPS 服务转发
[web_https]
type = https
local_ip = 127.0.0.1
local_port = 443
custom_domains = www.example.com, api.example.com # 这里添加要转发的域名
启动
- 在云主机上运行 ./frps -c fprs.toml
- 在家用主机上运行 ./frpc -frpc.toml
- 在任意地方 ssh -P 2222 your_user@your_host 远程登录。或者在任意地方访问 your_host访问的即是家里的主机
service 脚本
可将服务写个 service 脚本,使其开机自己,自动重启等
- 家用主机
- 云服务器
vim /etc/systemd/system/frpc.service
/etc/systemd/system/frpc.service
[Unit]
Description=frpc client
After=network.target
[Service]
Type=simple
WorkingDirectory=/home/wenyg/frp
ExecStart=/usr/bin/sudo /home/wenyg/frp/frpc -c /home/wenyg/frp/frpc.toml
Restart=always
RestartSec=5s
User=wenyg
Group=wenyg
StandardOutput=journal
StandardError=journal
[Install]
WantedBy=multi-user.target
执行脚本
sudo systemctl daemon-reload
sudo systemctl start frpc.service
sudo systemctl enable frpc.service
查看服务状态
sudo systemctl status frpc.service
frpc.toml
[common]
server_addr = your_server_host # 云主机ip 或者域名
server_port = 7000
token = your_token # 和服务端要一致
# SSH服务转发
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 2222
# HTTP 服务转发
[web]
type = http
local_ip = 127.0.0.1
local_port = 80
custom_domains = www.example.com, api.example.com # 这里添加要转发的域名
# HTTPS 服务转发
[web_https]
type = https
local_ip = 127.0.0.1
local_port = 443
custom_domains = www.example.com, api.example.com # 这里添加要转发的域名