由于现在IPv4地址的短缺,在国内不可能每个设备都会分配到一个公网IP,因此从公网中访问自己的私有设备向来是一件难事儿。本次带大家了解一下frp内网穿透的服务端教学,让你也能够部署一个内网穿透服务。
frp简介
通俗的说,frp是一个反向代理软件,它不仅轻量且功能很强大,可以使处于内网或防火墙后的设备对外界提供服务,它支持HTTP、TCP、UDP等众多协议。本文使用的版本为v0.32.1做为演示教程。
- frp程序文件地址:https://github.com/fatedier/frp/releases
服务器相关
服务器相关:
1.因为frp的原理是利用服务端(所准备的具有公网IP的服务器)进行转发,因而服务器的速度直接决定了之后连接的质量,请根据自己的需要选择相应主机配置。
2.博主使用的是阿里云学生机,CentOS 7 系统,自用足够了。frp客户端和服务端本身同时均支持Linux和Windows,且配置方法一样,请根据实际环境自行测试。
frp服务端部署
本文使用的是阿里云的服务器,CentOS 7 系统,故在frp服务端使用的是此版本:
我们首先远程登录到服务器,本文将frp服务端文件存放在/usr/local/
目录下作为演示,具体使用时可以视自己的需求忽略此步骤或自定义安装在其它目录:
1.使用wget命令将frp软件压缩包下载下来:
wget https://github.com/fatedier/frp/releases/download/v0.32.1/frp_0.32.1_linux_amd64.tar.gz
2.然后将文件解压:
tar -zxvf frp_0.32.1_linux_amd64.tar.gz
3.此处可以将frp_0.32.1_linux_amd64文件夹改名为frp,方便操作使用:
mv frp_0.32.1_linux_amd64 frp
4.进入frp目录:
cd frp
使用ll命令可看出下面有frps和frpc等文件字样:
其中frps前缀的文件为服务端所用的文件,frpc前缀的为客户端所用的文件,两者不要弄错!
由于是服务端部署,所以在此处我们只需要关注frps和frps.ini等文件,frpc前缀的文件小伙伴们可以自行决定是否删除。
5.接下来我们编辑frps.ini文件
vim frps.ini
文件应有下面的格式:
其中:bind_port
为服务器端端口token
为客户端与服务器端的连接设置一个验证vhost_http_port
客户端访问的http端口vhost_https_port
客户端访问的https端口dashboard_port
为frps登录面板端口dashboard_user
为frps登陆面板的用户名dashboard_pwd
为frps登陆面板的密码
输入完成后按Esc键,输入wq保存并退出。
6.用cat命令查看文件内容已成功保存
7.接下来输入命令运行frps服务端:
./frps -c ./frps.ini
看到success字样表示已运行成功:
8.此时我们可以使用浏览器访问http://ip地址:7500
,网页上输入自己设定的账号密码即可登录frps服务端查看相关信息:
设置开机启动
上面的教程在frps运行后你一旦退出Terminal或使用了Ctrl+C命令,那么你的frps服务端也就停止运行了,此处教大家如何设置开机自启动。
1.添加systemd配置文件:
vim /usr/lib/systemd/system/frp.service
2.编辑文件内容如下(ExecStart的内容请根据自己frp安装目录修改):
[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
3.设置frp开机启动:
systemctl daemon-reload
systemctl enable frp
4.启动frp(终止frp把start改为stop即可):
systemctl start frp
5.查看frp是否启动:
ps aux | grep frps
显示的内容如下则表示启动成功: