1. FRP介绍
对于没有公网 IP 的内网用户来说,远程管理或在外网访问内网机器上的服务是一个问题。借助FRP工具,可以轻松实现这个目的。
FRP 全名:Fast Reverse Proxy。FRP 是一个使用 Go 语言开发的高性能的反向代理的开源应用,可以帮助用户轻松地进行内网穿透,对外网提供服务。
FRP 支持 TCP、UDP、HTTP、HTTPS等协议类型,并且支持 Web 服务根据域名进行路由转发。
FRP分为服务端和客户端,需要分别在公网服务器和本地服务器进行安装配置。
本文主要介绍FRP的安装和配置方法。因篇幅和能力所限,本文仅介绍日常用到的SSH和web服务(http)的配置方法。如果对其它功能感兴趣,请移步官网自行学习、测试。
FRP 项目地址:https://github.com/fatedier/frp。
这边我用的frp包、putty:https://pan.baidu.com/s/198dg-T9ZcQ0-MYlbZhFLwA
提取码:uzow
2. 准备工作
- 准备1台有公网IP的云服务器,并有其远程登录账号密码。
- 1台本地服务器,有远程登录账号密码,且可以访问外网。
3. 配置FRP服务端
提供穿透服务的云服务器,是服务端。
3.1 登录服务器
用putty远程登录服务器。(可自行下载)
3.2 下载并安装 FRP
wget https://github.com/fatedier/frp/releases/download/v0.30.0/frp_0.30.0_linux_amd64.tar.gz
tar xzvf frp_0.30.0_linux_amd64.tar.gz
mv frp_0.30.0_linux_amd64 frp
Ps:当下载慢的时候,请查看网络是否良好,或重启下服务器在试试。
3.4 配置服务端
1)打开编辑
cd frp
vim frps.ini
2)然后按“i”进入编辑模式,编辑相关配置信息:
3)按“Esc”退出编辑,输入“:wq”,保存并退出。
3.5 启动frp服务端
./frps -c ./frps.ini
4. 配置客户端
在内网,需要内网穿透的本地服务器,是客户端
4.1 下载FRPC客户端
下载安装的过程和服务端一样
4.2 配置客户端
配置内容(SSH服务和web服务及数据库的外网访问的端口):
cd frp
vim frpc.ini
4.2 启动客户端
./frpc -c ./frpc.ini
4.3 其它frp命令
如果配置了开机启动,则修改配置文件后,要重启frp服务或者重载配置文件
重载命令:
./frpc reload -c ./frpc.ini
5. 访问测试
5.1 SSH服务测试
使用putty,访问 47.103.3.209,端口6000,输入对应账号密码,即可通过公网访问局域网的服务器。
5.2 Web服务测试
做之前,web上面配置的数据需要域名解析一下
5.2.1 登陆阿里云 web 管理端
1)浏览器输入网址:https://account.console.aliyun.com
2)输入对应账号,密码,并输入验证码。
5.2.2 进入域名管理界面
1) 点击左侧顶部菜单按钮,弹出左侧菜单列表
2) 点击左侧域名,进入域名列表界面
5.2.3 进入域名解析界面
1) 点击域名
2) 点击左侧域名解析
5.2.4 添加一条域名解析记录
1) 点击添加记录
2) 填写新记录,然后确定
5.2.5 域名解析测试
浏览器输入域名,即可正常访问:
http://xxxx.xxxx.com:xxxx/
6. 配置开机自启动服务
使用systemctl来控制启动这个方法比较好用,很方便
6.1 服务端配置
1)打开编辑界面:
vim /srv/frp/systemd/frps.service
2)在frps.service里写入以下内容
[Unit]
Description=Frp Server Service
After=network.target
[Service]
Type=simple
User=nobody
Restart=on-failure
RestartSec=5s
ExecStart=/srv/frp/frps -c /srv/frp/frps.ini
[Install]
WantedBy=multi-user.target
3)拷贝配置文件(frp在那个目录就写那个,文件实际目录)
sudo mv /srv/frp/systemd/frps.service /lib/systemd/system/frps.service
4)启动frps
sudo systemctl start frps
5)设置开机自启动
sudo systemctl enable frps
6)其它命令:
如果要重启应用,可以这样:
sudo systemctl restart frps
如果要停止应用,可以输入:
sudo systemctl stop frps
如果要查看应用的日志,可以输入:
sudo systemctl status frps
6.2 客服端配置
1)打开编辑界面:
vim /srv/frp/frpc.service
2)在frpc.service里写入以下内容
[Unit]
Description=Frp Client Service
After=network.target
[Service]
Type=simple
User=nobody
Restart=on-failure
RestartSec=5s
ExecStart=/srv/frp/frpc -c /srv/frp/frpc.ini
ExecReload=/srv/frp/frpc reload -c /srv/frp/frpc.ini
[Install]
WantedBy=multi-user.target
3)拷贝配置文件
sudo mv /srv/frp/systemd/frpc.service /lib/systemd/system/frpc.service
4)启动frpc
sudo systemctl start frpc
5)设置开机自启动
sudo systemctl enable frpc
6)其它命令:
如果要重启应用,可以这样:
sudo systemctl restart frpc
如果要停止应用,可以输入:
sudo systemctl stop frpc
如果要查看应用的日志,可以输入:
sudo systemctl status frpc
以上步骤做完,恭喜你frp内网穿透布置成功了!