frp内网穿透

frp内网穿透

  • 实验环境
  • 一、安装frp文件
  • 二、公网服务器配置
  • 三、内网服务器配置
  • 四、开启frp服务
  • 五、ssh连接测试
  • 六、连接多台服务器
  • 七、配置系统服务
  • 八、报错排查

实验环境

设备 ip地址 网络设置 备注
公网服务器 192.168.9.129 能访问外网,与路由器做端口映射 安装、配置frps文件、开启对应端口
内网服务器 192.168.9.127 设置为内网网段,不能上网 安装、配置frpc文件、开启对应端口
pc机 192.168.5.86 - 最后用此机器进行ssh连接测试
路由器 x.x.x.x(公网ip) - 给公网ip开启端口映射功能

注意! 路由端口映射需要开启公网服务器内网服务器的端口
在这里插入图片描述

图解:
frp内网穿透_第1张图片

一、安装frp文件

公网服务器、内网服务器都需要安装
frp安装包:frp_0.34.3_linux_amd64.tar.gz

[root@localhost ~]# wget https://github.com/fatedier/frp/releases/download/v0.34.3/frp_0.34.3_linux_amd64.tar.gz
[root@localhost ~]# tar -xvf frp_0.34.3_linux_amd64.tar.gz
[root@localhost ~]# cd frp_0.34.3_linux_amd64/
[root@localhost ~/frp_0.34.3_linux_amd64]# ls
frpc    frpc_full.ini    frpc.ini    frps    frps_full.ini    frps.ini    LICENSE    systemd

二、公网服务器配置

1、配置frps.ini文件

[root@localhost ~/frp_0.34.3_linux_amd64]# vi frps.ini
[common]
bind_port = 11195                                     # frp监听的端口(默认是7000 可自定义)
token = 95111                                         # 授权码(自定义 建议复杂点 后面内网服务器也需要用上)

# frp日志配置
log_file = /var/log/frps.log
log_level = info
log_max_days = 3
frp内网穿透_第2张图片

2、如果公网服务器有开启防火墙功能,记得开启对应端口!

[root@localhost ~/frp_0.34.3_linux_amd64]# firewall-cmd --zone=public --remote-port=11195/tcp --permanent
[root@localhost ~/frp_0.34.3_linux_amd64]# firewall-cmd --reload

三、内网服务器配置

1、配置frpc.ini文件

[root@localhost ~/frp_0.34.3_linux_amd64]# vi frps.ini
	[common]
	server_addr = 192.168.9.129   # 公网服务器ip
	server_port = 11195           # 公网服务器监听端口
	token = 95111                 # 公网服务器里配置的token授权码
	
	[ssh] # 服务名称(自定义)
	type = tcp                    # 连接协议
	local_ip = 127.0.0.1          # 内网服务器ip(无需修改)
	local_port = 22               # 内网服务端口
	remote_port = 11196           # 公网映射到内网的服务端口,即访问公网11196端口,实际是连接到内网的22端口,公网服务器也需开通此端口
	
	# 内网服务器若有多个服务需要被打开,可以依次在这里添加配置
	[web]                         # 其他服务名称
	type = tcp
	local_ip = 127.0.0.1
	local_port = 80
	remote_port = 11197
frp内网穿透_第3张图片

2、如果内网服务器有开启防火墙功能,记得开启对应端口!

[root@localhost ~/frp_0.34.3_linux_amd64]# firewall-cmd --zone=public --remote-port=11196/tcp --permanent
[root@localhost ~/frp_0.34.3_linux_amd64]# firewall-cmd --reload

注意!公网服务器除了开启11195端口外,还需要开启内网服务器的11196端口

四、开启frp服务

1、公网服务器

# 临时启动
[root@localhost ~/frp_0.34.3_linux_amd64]# ./frps -c ./frps.ini
# 后台保持启动
[root@localhost ~/frp_0.34.3_linux_amd64]# nohup ./frps -c ./frps.ini &
frp内网穿透_第4张图片

2、内网服务器

# 临时启动
[root@localhost ~/frp_0.34.3_linux_amd64]# ./frpc -c ./frpc.ini
# 后台保持启动
[root@localhost ~/frp_0.34.3_linux_amd64]# nohup ./frpc -c ./frpsc.ini &

五、ssh连接测试

ssh 用户名@x.x.x.x(公网ip) -p 端口号

注意!这里的用户名是要访问内网服务器的用户名,端口号是内网服务器frpc.ini文件中的remote_port

frp内网穿透_第5张图片

六、连接多台服务器

根据需要可以连接多台内网服务器,只要在每个内网服务器中安装并配置好frpc.ini文件、运行;

且外网服务器也要开启对应的端口、路由器的端口映射

七、配置系统服务

1、公网服务器

[root@localhost ~/frp_0.34.3_linux_amd64]# mkdir -p /etc/frp
[root@localhost ~/frp_0.34.3_linux_amd64]# cp frps.ini /etc/frp
[root@localhost ~/frp_0.34.3_linux_amd64]# cp frps /usr/bin
[root@localhost ~/frp_0.34.3_linux_amd64]# cp systemd/frps.service /usr/lib/systemd/system/
[root@localhost ~/frp_0.34.3_linux_amd64]# systemctl enable frps
[root@localhost ~/frp_0.34.3_linux_amd64]# systemctl start frps
[root@localhost ~/frp_0.34.3_linux_amd64]# systemctl status frps

2、内网服务器

[root@localhost ~/frp_0.34.3_linux_amd64]# mkdir -p /etc/frp
[root@localhost ~/frp_0.34.3_linux_amd64]# cp frpc.ini /etc/frp
[root@localhost ~/frp_0.34.3_linux_amd64]# cp frpc /usr/bin
[root@localhost ~/frp_0.34.3_linux_amd64]# cp systemd/frpc.service /usr/lib/systemd/system/
[root@localhost ~/frp_0.34.3_linux_amd64]# systemctl enable frpc
[root@localhost ~/frp_0.34.3_linux_amd64]# systemctl start frpc
[root@localhost ~/frp_0.34.3_linux_amd64]# systemctl status frpc

八、报错排查

1、如果frps、frpc都启动不了出现报错,证明是配置文件的问题,如端口没有统一、token授权码错误等;
2、如果在ssh连接测试时返回:Connection timed out,则表示路由器端口映射 / 外网服务器防火墙 没有添加内网服务器的端口;

你可能感兴趣的:(运维,网络,服务器,linux,运维,centos)