在此处下载frp,注意选择正确的系统版本。我用的阿里云的Ubuntu系统的服务器,下载linux_amd64.tar.gz这个版本。
在服务器上使用如下指令下载并解压(注意链接对应版本)。
cd ~
wget https://github.com/fatedier/frp/releases/download/v0.54.0/frp_0.54.0_linux_amd64.tar.gz
tar -zxvf frp_0.54.0_linux_amd64.tar.gz
在~目录下会解压得到frp_0.54.0_linux_amd64这个文件夹,进入此文件夹(善用tab键)。
cd frp_0.54.0_linux_amd64
使用frp,首先需要有一个具有公网IP的服务器(server),和一个想要使用公网IP访问的电脑(client),frp这个软件在server和client之间架起了桥梁。当我们配置好frp并远程访问时,会先连接到具有公网IP的服务器,再由frp连接到内网电脑,实现远程访问。
在frp_0.54.0_linux_amd64文件夹内有下述文件,注意区分s
和c
。
total 31276
drwxr-xr-x 2 admin admin 4096 Feb 11 12:47 ./
drwxr-xr-x 6 admin admin 4096 Feb 11 12:47 ../
-rwxr-xr-x 1 admin admin 13946880 Feb 1 14:34 frpc*
-rw-r--r-- 1 admin admin 142 Feb 1 14:37 frpc.toml
-rwxr-xr-x 1 admin admin 18051072 Feb 1 14:34 frps*
-rw-r--r-- 1 admin admin 16 Feb 1 14:37 frps.toml
-rw-r--r-- 1 admin admin 11358 Feb 1 14:37 LICENSE
其中frps和frps.toml分别是服务器(server)端的运行程序和配置文件,frpc和frpc.toml分别是内网电脑(client)端的运行程序和配置文件,一定要区分好。
frp的配置文件可以很复杂,来实现很多功能,具体参考frp的GitHub网站进行配置。但这里既然是最简实用配置,那自然以简单能跑为标准,下面的配置文件都是最简的(至少我认为)。
使用vim、nano或者任何文字编辑软件打开frps.toml,这里我使用的是nano。
sudo nano frps.toml
文件内容如下。
bindPort = 7000
不需要任何修改,Ctrl+X
退出。
使用如下命令在/etc下创建frp文件夹,并将frps和frps.toml复制到此。
sudo mkdir -p /etc/frp
sudo cp frps /etc/frp
sudo cp frps.toml /etc/frp
同时需要在公网服务器(server)的控制面板中将6000和7000端口开放。
这里使用systemd配置frps服务,若无可使用如下命令安装。
sudo apt install systemd
使用nano创建服务配置文件frps.service。
sudo nano /etc/systemd/system/frps.service
写入如下内容。
[Unit]
Description = frp server
After = network.target syslog.target
Wants = network.target
[Service]
Type = simple
ExecStart = /etc/frp/frps -c /etc/frp/frps.toml
[Install]
WantedBy = multi-user.target
Ctrl+O
保存,Ctrl+X
退出。
frps已经配置完成,可以使用如下指令管理frps服务。
sudo systemctl start frps # 启动
sudo systemctl stop frps # 停止
sudo systemctl restart frps # 重启
sudo systemctl status frps # 查看状态
使用如下指令实现开机自启和禁用开机自启。
sudo systemctl enable frps # 启用开机自启
sudo systemctl disable frps # 禁用开机自启
在内网电脑上使用任意方法同样下载frp_0.54.0_linux_amd64.tar.gz文件并解压得到frp_0.54.0_linux_amd64文件夹,进入此文件夹。
使用vim、nano或者任何文字编辑软件打开frpc.toml,修改为如下内容。
serverAddr = "123.456.789.001"
serverPort = 7000
[[proxies]]
name = "ssh"
type = "tcp"
localIP = "127.0.0.1"
localPort = 22
remotePort = 6000
在123.456.789.001处填写公网服务器的真实IP,Ctrl+O
保存,Ctrl+X
退出。
使用如下命令在/etc下创建frp文件夹,并将frpc和frpc.toml复制到此。
sudo mkdir -p /etc/frp
sudo cp frpc /etc/frp
sudo cp frpc.toml /etc/frp
同时需要开放内网电脑(client)的6000和7000端口。
同样使用systemd管理服务,若无请按上述frps中方法安装,使用nano创建服务配置文件frpc.service。
sudo nano /etc/systemd/system/frpc.service
写入如下内容。
[Unit]
Description = frp client
After = network.target syslog.target
Wants = network.target
[Service]
Type = simple
ExecStart = /etc/frp/frpc -c /etc/frp/frpc.toml
[Install]
WantedBy = multi-user.target
Ctrl+O
保存,Ctrl+X
退出。
frpc已经配置完成,可以使用如下指令管理frpc服务。
sudo systemctl start frpc
sudo systemctl stop frpc
sudo systemctl restart frpc
sudo systemctl status frpc
使用如下指令实现开机自启和禁用开机自启。
sudo systemctl enable frpc
sudo systemctl disable frpc
服务器端一般比较稳定,且如果出现问题可以通过公网IP远程连接解决。但内网电脑有可能因为停电、网络不稳等问题导致frpc服务不稳定,所以可以使用crontab实现frpc服务的定时重启,若无crontab可使用如下指令安装。
sudo apt install cron
使用如下指令进入crontab的编辑界面。
sudo crontab -e
在最后加入如下内容,即可实现一小时重启一次frpc服务。
0 * * * * systemctl restart frpc
若希望通过公网IP访问的内网电脑有如下用户。
用户名:user
密码:123
则ssh远程连接的信息如下。
IP:123.456.789.001 # 公网服务器的IP
端口:6000
用户名:user # 内网电脑的用户名
密码:123 # 内网电脑的密码
ssh远程连接指令如下。
ssh [email protected] -p 6000
若有提示(yes/no/[fingerprint])?
请输入yes并回车,再输入密码123回车即可连接。