FPR是开源的项目,感谢作者。
这个是FRP项目的GitHub地址:https://github.com/fatedier/frp
为什么需要FRP?
内网穿透
由于全世界入网设备越来越多,已经不可能给每一个设备一个单独的IP地址了。如果你有一台在家里的服务器,或者是在家里的NAS,想在家外面远程访问。但是家里又没有公网IP,这个时候就需要使用FPR做内网穿透,使得没有我们可以从远程访问在家中没有公网IP的设备。
安全连接
很多时候把自己的设备直接暴露刀公网是一个很不明智的决定,因为有很多公司无时无刻的不在扫描全世界IP的端口。举个例子,如果你将你的NAS开放了公网访问端口,这就相当于你的NAS在互联网中裸奔,如果这个时候你的密码还非常简单,那你的数据就被别惹一览无余了。但是使用FRP可以增加一层安全措施,相对而言会更安全一点。
准备工作
一个有公网IP的云服务器(微软Azure,GCP,AWS,阿里云,华为云等)
安装教程 (在公网服务器和被控电脑上都下载)
查看Linux版本
dpkg --print-architecture
如果输出的arm64可以执行这段命令
wget https://github.com/fatedier/frp/releases/download/v0.61.0/frp_0.61.0_linux_arm64.tar.gz
如果是amd64那就执行如下命令
wget https://github.com/fatedier/frp/releases/download/v0.61.0/frp_0.61.0_linux_amd64.tar.gz
如果报错“-bash: /usr/bin/wget: No such file or directory”那代表你的系统还没有安装wget插件,使用下面命令安装
sudo apt install wget
解压文件
刚才的下载命令会下载一个tar.gz的压缩文件,我们使用下面这个命令解压,把Your_File_Name换成你下载的文件名
tar -zxvf Your_File_Name
进入目录
举个例子:”cd frp_0.61.0_linux_amd64/”,按照你下载的文件为准
cd Your_Directory
配置服务器端
修改配置文件
使用vim或者nano打开
vim frps.ini
如果出现报错那是因为你没有下载vim,可以通过下面的指令下载vim
sudo apt install vim
成功打开之后我们吧配置文件修改成如下
[common]
# frp listening port, the default one is 7000
bind_port = 7000
# Token, this will be used in later
token = Change_To_Your_Token
# Port mapped from the server
vhost_http_port = 9000
# frp website ports
dashboard_port = 7500
# frp webpage user name & password
dashboard_user = admin
dashboard_pwd = admin
enable_prometheus = true
# frp log setting
log_file = /var/log/frps.log
log_level = info
log_max_days = 3
修改完成之后我们运行如下命令来启动frp服务端和家frp加入开机自启
sudo mkdir -p /etc/frp
sudo cp frps.ini /etc/frp
sudo cp frps /usr/bin
sudo cp systemd/frps.service /usr/lib/systemd/system/
sudo systemctl enable frps
sudo systemctl start frps
如果你使用的是厂商提供的云服务器,那你需要去对应的云服务器公司开启你的防火墙和添加对应的策略组,如果你使用的小厂的服务器,那可能没有专门的集成的安全管理软件,可以尝试下面的命令来允许frp需要使用的端口
sudo ufw allow 7000
sudo ufw allow 7500
如果报错找不到ufw可以尝试下载ufw
sudo apt install ufw
配置电脑端
修改配置文件
同样的进入这个文件夹修改配置文件,注意配置文件的名字变了
vim frpc.ini
修改配置到如下设置
[common]
server_addr = Your_Server_IP
server_port = 7000 # Same as the listening port in server
token = Your_Token # The token need to be the same
# SSH
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000 # (connecting port) you can chenge this port to any you want
放行防火墙
一般来说被控端都是家中的服务器,一般来说没有专用的防火墙,所以如果你家中的设备是ubuntu的画可以尝试如下命令
sudo ufw allow 6000
启动frp客户端
./frpc -c frpc.ini
正常来说你会看到链接成功的标志如果你的设置一切正确的话
总结
文章中只演示了如果开启ssh的远端访问,当然frp也可以用来开启HTTP,HTTPS的服务。