frp
目的:在局域网外远程控制局域网内的服务器
方法:使用frp实现内网穿透教程
github地址:https://github.com/fatedier/frp
1.云服务器
一台
以下出现的和云服务器相关的端口(本文中为7000.7001)记得在安全组中开放,否则不成功
根据服务器架构下载相应版本,我的是x86_64 就选择amd64
wget https://github.com/fatedier/frp/releases/download/v0.37.0/frp_0.37.0_linux_amd64.tar.gz
tar -zxvf frp_0.37.0_linux_amd64.tar.gz
mv frp_0.37_linux_amd64 frp37
cd frp37
ls -l
vim frps.ini
frps 是服务端程序,frps.ini 是服务端配置文件
frpc 是客户端程序,frpc.ini 是客户端配置文件
服务端我们需要修改的是 frps.ini 文件
这个文件应有如下格式
[common] bind_port = 7000 token = abc123
#以下可不配置(因为以上就可以达到我的目的,以后若我有用到下面的再来补充)
dashboard_port = 7500 dashboard_user = user dashboard_pwd = password vhost_http_port = 10080 vhost_https_port = 10443
一般只设置:
bind_port = 7000 token = abc123
(理论上来讲token也可以不设置,有了更安全)
这两个即可
分别代表frps服务端的监听端口号和用于客户端和服务端连接的口令token(frpc客户端必须设置一样的token才能连接)
./frps -c frps.ini
# 启动服务端
2021/06/29 15:58:55 [I] [root.go:200] frps uses config file: frps.ini
2021/06/29 15:58:55 [I] [service.go:192] frps tcp listen on 0.0.0.0:7001
2021/06/29 15:58:55 [I] [root.go:209] frps started successfully
# 启动成功
# 稍后介绍使用systemctl控制启动
2.内网服务器
比如linux服务器
以上相同的步骤配置frpc,注意此时是配置frpc,客户端
云服务器配置的是frps,服务端
编辑frpc.ini
[common]
server_addr = xx.xx.xx.xx
server_port = 7000
token = abc123
[rdp]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 7001
server_addr 配置为你的公网IP
server_port 和服务端(frps.ini)的 bind_port 一致
local_port 为ssh默认端口号 22
remote_port 为远程连接时使用的端口号(Port=remote_port)
./frpc -c frpc.ini
# 启动客户端
3.测试
在局域网外使用ssh连接
ssh -o Port=<remote_port> <内网服务器用户名>@<云服务器公网IP>
# 输入内网服务器的密码
# 测试是否成功
4.systemctl管理frp
方法一
以配置服务端(即云服务器)为例:
vim /etc/systemd/system/frps.service
写入以下内容
.service文件再已经下载好的frp/frp37/systemd目录下有,可直接使用 复制到/etc/systemd/system/下(推荐使用,方法二中介绍)
[Unit]
Description=frps service After=network.target syslog.target Wants=network.target
[Service]
Type=simple
ExecStart=此处写你的frps的实际安装目录/frps -c 此处写你的frps的实际安装目录/frps.ini
[Install]
WantedBy=multi-user.target
客户端同理 把frps改为frpc即可
方法二
以配置客户端(即实际需要控制的服务器)为例:
使用已经下载好的frp/frp37/systemd目录下的.service文件
sudo cp -r path/to/frp/frp37/systemd/frpc.service /etc/systemd/system/
sudo cp -r path/to/frp/frp37/frpc /usr/bin/
sudo cp -r path/to/frp/frp37/frpc.ini /etc/frp/
服务端同理
sudo cp -r path/to/frp/frp37/systemd/frps.service /etc/systemd/system/
sudo cp -r path/to/frp/frp37/frps /usr/bin/
sudo cp -r path/to/frp/frp37/frps.ini /etc/frp/
其他
# 启动 frp 并设置开机启动
systemctl enable frpc
systemctl start frpc
systemctl status frpc
# 部分服务器上,可以需要加 .service 后缀来操作,即:
systemctl enable frpc.service
systemctl start frpc.service
systemctl status frpc.service
参考:
FRP搭建内网穿透(亲测有效)_locyanfrp-CSDN博客