
简单介绍:
frp(fast reverse proxy)是开源轻量反向代理内网穿透工具,支持 tcp, udp, http, https 协议,C/S 架构:
frps:服务端,部署在有公网 IP的服务器
frpc:客户端,部署在内网服务器,主动向外建立长连接
frps 和 frpc版本必须保持一致
具体实现:
1、需要一个公网ip地址,用来安装部署frp服务端frps
2、需要在内网环境中部署一台frp客户端frpc,当做代理服务器
3、用户访问公网ip地址和端口,会先连接到frp客户端,再根据相应的规则去匹配转发,把请求发送到内网中其他主机和端口
4、在服务端需要开启相应的端口(7000,7001,7002,7003等)
安装部署:
1、下载frps
frp压缩包同时包含了 frps(frp 服务端)和frpc(frp 客户端)
项目地址:https://github.com/fatedier/frp
下载地址:https://github.com/fatedier/frp/releases/download/v0.71.0/frp_0.71.0_linux_amd64.tar.gz
2、服务端部署
#创建目录
mkdir -p /data/soft
mkdir -p /data/server
上传安装包frp_0.71.0_linux_amd64.tar.gz到/data/soft目录下面
#解压
cd /data/soft
tar zxvf frp_0.71.0_linux_amd64.tar.gz
mv /data/soft/frp_0.71.0_linux_amd64 /data/server/frp
#修改服务端配置文件
cp /data/server/frp/frps.toml /data/server/frp/frps.toml.bak
vi /data/server/frp/frps.toml
bindAddr = "0.0.0.0" #监听服务器所有地址
bindPort = 7000 #监听的端口
[transport]
tcpMux = true #优化传输
[auth]
method = "token" #身份验证方式
token = "123456789" #token设置密码,用于通过身份验证创建连接
:wq! #保存退出
#验证配置文件是否正确
/data/server/frp/frps verify -c /data/server/frp/frps.toml
#后台启动
nohup /data/server/frp/frps -c /data/server/frp/frps.toml > /dev/null 2>&1 &
#添加服务端开机启动
vi /usr/lib/systemd/system/frps.service
[Unit]
Description=frp server service
After=network.target
[Service]
Type=simple
User=root
ExecStart=/data/server/frp/frps -c /data/server/frp/frps.toml
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
:wq! #保持退出
#重新加载 systemd 配置
systemctl daemon-reload
#启动frp
systemctl start frps
#停止frp
systemctl stop frps
#重启frp
systemctl restart frps
#查看frp状态
systemctl status frps
#服务在系统开机启动时自动启动
systemctl enable frps
# 实时跟踪日志
journalctl -u frps -f
# 查看历史日志
journalctl -u frps
3、客户端部署
#创建目录
mkdir -p /data/soft
mkdir -p /data/server
上传安装包frp_0.71.0_linux_amd64.tar.gz到/data/soft目录下面
#解压
cd /data/soft
tar zxvf frp_0.71.0_linux_amd64.tar.gz
mv /data/soft/frp_0.71.0_linux_amd64 /data/server/frp
#修改客户端配置文件
cp /data/server/frp/frpc.toml /data/server/frp/frpc.toml.bak
vi /data/server/frp/frpc.toml #编辑配置文件
serverAddr = "192.168.21.100"
serverPort = 7000
[auth]
method = "token"
token = "123456789"
[transport]
tcpMux = true
# ssh
[[proxies]]
name = "ssh"
type = "tcp"
localIP = "10.99.99.94"
localPort = 22
remotePort = 7001
:wq! #保持退出
#添加客户端开机启动服务
vi /usr/lib/systemd/system/frpc.service
[Unit]
Description=frp client service
After=network.target
[Service]
Type=simple
User=root
ExecStart=/data/server/frp/frpc -c /data/server/frp/frpc.toml
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
:wq! #保持退出
#重新加载 systemd 配置
systemctl daemon-reload
#启动frp
systemctl start frpc
#停止frp
systemctl stop frpc
#重启frp
systemctl restart frpc
#查看frp状态
systemctl status frpc
#服务在系统开机启动时自动启动
systemctl enable frpc
4、验证
现在可以通过外网ip+端口来访问内网的服务器了。
内网端口暴露在公网上,请务必设置强密码,不要使用弱口令,很容易被攻击!
至此,Linux下安装部署frp开源内网穿透反向代理工具完成。

②190706903
③203744115



