# 下载

客户端和服务器都要下载这个文件

frp_0.38.0_linux_amd64.tar.gz

# 解压

请在客户机(也就是需要进行内网穿透的本地机)和服务器执行相同操作:

解压: tar -xvf frp_0.38.0_linux_amd64.tar.gz

放到 local 目录下: mv frp_0.38.0_linux_amd64 /usr/local/frp

cd /usr/local/frp

# 服务器配置

登录到腾讯云服务器,下载解压步骤。

ls 查看目录:

image-20220122115136816

frps 是服务器对应的执行文件,frps.ini 是服务器配置文件。

修改 frps 配置文件: vim frps.ini

[common]
bind_port = 33300

这个 bind_port 就是 frps 的监听端口,可以修改为你需要制定的端口,在云服务器中,我们一般不会使用默认端口,因为这可能会导致出现病毒攻击。

腾讯云设置:找到防火墙管理规则,开放暴露端口。

注意

如果你要通过 frp 进行 ssh 访问,还要开启一个 ssh 访问端口,也就是要暴露两个端口,一个 33300 端口,一个 33301 端口,其中 33301 端口用于提供 ssh 服务。

image-20220122121136085

总结,修改配置文件,开放两个端口。

如果执行报错,可以执行 chmod 777 frps 增加权限。

# 执行

/usr/local/frp/frps -c /usr/local/frp/frps.ini

image-20220122122845140

# 注册为系统服务

sudo vim /usr/lib/systemd/system/frps.service

[Unit]
Description=frps Service
Documentation=https://github.com/fatedier/frp
After=network.target nss-lookup.target

[Service]
ExecStart=/usr/local/frp/frps -c /usr/local/frp/frps.ini 
Restart=on-failure
RestartPreventExitStatus=23

[Install]
WantedBy=multi-user.target                                

重载服务: systemctl daemon-reload

开启服务: systemctl start frps

查看服务状态: systemctl status frps

设置开机自启动: systemctl enable frps

# 客户端

# 客户端配置

frpc 是客户端对应的执行文件,frpc.ini 是客户端配置文件。

执行之前相同的下载解压 cd 命令

修改客户端配置: vim frpc.ini ,[ssh] 设置了 ssh 端口, remote_port 指的是你的服务器应该用 33301 端口来提供 ssh 服务,因为我们之前开放了服务器的 33301 端口。

[common]
server_addr = 你的服务器公网ip
server_port = 33300 
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 33301

同样,注册为服务: sudo vim /usr/lib/systemd/system/frpc.service

[Unit]
Description=frps Service
Documentation=https://github.com/fatedier/frp
After=network.target nss-lookup.target

[Service]
ExecStart=/usr/local/frp/frpc -c /usr/local/frp/frpc.ini
Restart=on-failure
RestartPreventExitStatus=23

[Install]
WantedBy=multi-user.target
~                                     

重载服务: systemctl daemon-reload

开启服务: systemctl start frpc

查看服务状态: systemctl status frpc

设置开机自启动: systemctl enable frpc

# ssh 连接

ok,现在我们可以用 ssh 来连接到这个内网主机了。

ssh -p 33301 内网机需要登录的用户名@服务器的公网ip

image-20220122124105449

完美,这样我们就完成了内网穿透实现 ssh 连接了。