frp内网穿透

5

20250122.frp内网穿透

https://github.com/fatedier/frp
https://service.oray.com/question/5571.html

1. 背景

  • 背景来源于上述链接2
  • 内网穿透,又称为NAT穿透。NAT背后的设备,它们的主要特点是 ,可以访问外网,但不能被外网设备有效访问。基于这一特点,NAT穿透技术是让NAT背后的设备,先访问指定的外网服务器,由指定的外网服务器搭建桥梁,打通内、外网设备的访问通道,实现外网设备访问到内网设备。
  • A和B 根据frp github页面,设我的公网服务器为A,实验室服务器为B

2. 部署

# 查看服务器架构
uname -m
# 两台服务器都是x86_64

# 分别下载对应版本frp
wget https://github.com/fatedier/frp/releases/download/v0.61.1/frp_0.61.1_linux_amd64.tar.gz

# 服务器A操作,也就是我的公网服务器
tar -zxvf frp_0.61.1_linux_amd64.tar.gz
cd ~/frp_0.61.1_linux_amd64
vim frps.toml #设置默认端口从7000到8888
./frps -c ./frps.toml #启动frps

# 服务器B操作,也就是实验室服务器(客户端)
tar -zxvf frp_0.61.1_linux_amd64.tar.gz
cd ~/frp_0.61.1_linux_amd64
vim frpc.toml #修改serverAddr = "47.101.222.2" serverPort = 8888 remotePort 9999
# 注意,要去阿里云控制台同时开放9999,8888端口,否则在B中无法正常启动。
# Note that the localPort (listened on the client) and remotePort (exposed on the server) are used for traffic going in and out of the frp system, while the serverPort is used for communication between frps and frpc.
./frpc -c ./frpc.toml #启动frps

# 外网连接实验室服务器B
ssh -oPort=9999 caigui@47.101.222.2

3. 后台/自动 运行

- 1. nohup 方法
- 2. 系统服务,可开机自动运行
# 弄成系统服务,这样重启也可以运行
# 编写服务文件,例如 frps.service 和 frpc.service,并放在 /etc/systemd/system/

# A服务器,公网服务器
sudo vim /etc/systemd/system/frps.service
# frps.service文件内容如下
[Unit]
Description=FRP Server
After=network.target

[Service]
ExecStart=/home/caigui/frp_0.61.1_linux_amd64/frps -c /home/caigui/frp_0.61.1_linux_amd64/frps.toml
Restart=always

[Install]
WantedBy=multi-user.target
# 应用服务并启动
sudo systemctl enable frps
sudo systemctl start frps

# B服务器,实验室服务器
sudo vim /etc/systemd/system/frpc.service
# frpc.service文件内容如下
[Unit]
Description=FRP Server
After=network.target

[Service]
ExecStart=/home/caigui/frp_0.61.1_linux_amd64/frpc -c /home/caigui/frp_0.61.1_linux_amd64/frpc.toml
Restart=always

[Install]
WantedBy=multi-user.target

# 应用服务并启动
sudo systemctl enable frpc
sudo systemctl start frpc

4. 下载文件

    1. scp
# 使用scp
scp -P 9999 caigui@47.101.222.2:/home/caigui/tmp.txt /Users/caigui/Downloads

    1. 其实可以直接使用SFTP,设置相同的9999端口即可