官网介绍
frp is a fast reverse proxy that allows you to expose a local server located behind a NAT or firewall to the Internet. It currently supports TCP and UDP, as well as HTTP and HTTPS protocols, enabling requests to be forwarded to internal services via domain name.
frp是一个快速的反向代理,它允许您将位于NAT或防火墙后面的本地服务器暴露给Internet。它目前支持TCP和UDP,以及HTTP和HTTPS协议,使请求能够通过域名转发到内部服务。
通过frp进行内网穿透,通过具有公网IP的服务器将本地的服务端口代理出去,从而达到在公网上访问本地的服务。
我的资源和需求
配置
- 一台公网IP的centos 7服务器
- 一台ubuntu 18本地的服务器
需求
通过公网ip+端口访问 ubuntu上的服务
frp服务端配置(centos)
下载frp
wget https://github.com/fatedier/frp/releases/download/v0.37.1/frp_0.37.1_linux_amd64.tar.gz
解压
tar -xvf frp_0.38.0_linux_amd64.tar.gz
移动解压内的文件
- /usr/local/frp/ 这里的目录要记住,后面配置需要
# 创建文件夹
mkdir /usr/local/frp
# 移动
mv ./frp_0.38.0_linux_amd64/* /usr/local/frp/
修改服务端配置文件 frps.ini
sudo vim /usr/local/frp/frps.ini
[common]
bind_port = 绑定端口,客户端配置是需要使用这里配置的端口
dashboard_port = 服务端面板端口
token = 与客户端连接时的密钥
dashboard_user = 面板用户
dashboard_pwd = 面板密码
保存退出
配置系统服务
sudo vim /usr/lib/systemd/system/frps.service
内容如下
[Unit]
Description=The nginx HTTP and reverse proxy server
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=simple
# 这里就是上面移动的位置路径
ExecStart=/usr/local/frp/frps -c /usr/local/frp/frps.ini
KillSignal=SIGQUIT
TimeoutStopSec=5
KillMode=process
PrivateTmp=true
StandardOutput=syslog
StandardError=inherit
[Install]
WantedBy=multi-user.target
重新服务启动
# 重新加载配置文件
sudo systemctl daemon-reload
# 启动服务
sudo systemctl start frps.service
# 设置开机启动
sudo systemctl enable frps.service
客户端配置(ubuntu)
下载frp
wget https://github.com/fatedier/frp/releases/download/v0.37.1/frp_0.37.1_linux_amd64.tar.gz
解压
tar -xvf frp_0.38.0_linux_amd64.tar.gz
移动解压内的文件
- /usr/local/frp/ 这里的目录要记住,后面配置需要
# 创建文件夹
mkdir /usr/local/frp
# 移动
mv ./frp_0.38.0_linux_amd64/* /usr/local/frp/
修改服务端配置文件 frpc.ini
[common]
server_addr = 服务器公网ip地址
server_port = 服务端配置的绑定端口
token = 秘钥
[range:tcp_port]
type = tcp
local_ip = 127.0.0.1
local_port = 22,8090
remote_port = 10022,8090
配置系统服务
sudo vim /lib/systemd/system/frpc.service
[Unit]
Description=fraps service
After=network.target syslog.target
Wants=network.target
[Service]
Type=simple
#启动服务的命令(此处写你的frps的实际安装目录)
ExecStart=/usr/local/frp/frpc -c /usr/local/frp/frpc.ini
[Install]
WantedBy=multi-user.target
重新服务启动
# 重新加载配置文件
sudo systemctl daemon-reload
# 启动服务
sudo systemctl start frps.service
# 设置开机启动
sudo systemctl enable frps.service
评论区