frp内网穿透

目的

在公网访问实验室服务器

环境

服务端:腾讯云服务器(centos7),有公网IP

客户端:内网服务器(ubuntu20.04)

下载frp

两台机器都下载同一个东西

Releases · fatedier/frp (github.com)

wget https://github.com/fatedier/frp/releases/download/v0.38.0/frp_0.38.0_linux_amd64.tar.gz
tar -zxvf frp_0.38.0_linux_amd64.tar.gz
cd frp_0.38.0_linux_amd64

服务端配置

修改frps.ini

[common]
bind_port = 7000

放行端口

firewall-cmd --zone=public --add-port=7000/tcp --permanent
firewall-cmd --zone=public --add-port=6000/tcp --permanent

云服务器还需要在管理面板安全策略中再次放行

启动服务

./frps -c ./frps.ini

客户端配置

修改frpc.ini

[common]
    server_addr = xxx.xxx.xxx.xxx # frps 所在服务器的公网 IP
    server_port = 7000

[ssh]
type = tcp
local_ip = 127.0.0.1    # 本地需要暴露到公网的服务地址
local_port = 22         # 本地需要暴露到公网的服务地址
remote_port = 6000      # 在 frp 服务端监听的端口,访问此端口的流量将会被转发到本地服务对应的端口

放行端口(这里是22,已经默认放行)

firewall-cmd --zone=public --add-port=22/tcp --permanent

启动客户端程序

./frpc -c ./frpc.ini

远程登录

ssh username@xxx.xxx.xxx.xxx -p 6000

用内网服务器的用户名和密码

用公网服务器的IP和端口

设置开启自启动

注册服务

服务端

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

[Unit]
Description=fraps service
After=network.target network-online.target syslog.target
Wants=network.target network-online.target

[Service]
Type=simple

#启动服务的命令(此处写你的frps的实际安装目录)
ExecStart=/your/path/frps -c /your/path/frps.ini

[Install]
WantedBy=multi-user.target

启动服务

sudo systemctl start frps#启动
sudo systemctl enable frps#自启动

客户端一模一样的操作,只不过把frps改成frpc

其他

sudo apt install firewall                 //安装防火墙
sudo systemctl start firewalld.service   //开启防火墙
sudo systemctl stop firewalld.service   //关闭防火墙
sudo systemctl enable firewalld.service  //设置开机自动启动
sudo systemctl disable firewalld.service   //设置关闭开机制动启动
sudo firewall-cmd --reload  //在不改变状态的条件下重新加载防火墙

frp内网穿透
https://xinhaojin.github.io/2022/04/14/frp内网穿透/
作者
xinhaojin
发布于
2022年4月14日
许可协议