frp-内网穿透(外网访问内网服务器)
快速配置FRP,实现内网穿透(外网访问内网服务器)
配置:
只需要一台具有固定IP的外网服务器即可,下文中使用 server_ip 代指这个地址
一、 下载软件
注意:下载对应版本
二、 配置服务器端
1. 上传 frp 软件到服务器
2. 解压 tar -zxvf frp_xxx_xx_xx.tar.gz
3. cd 进入 frp 解压的目录
4. 配置 frps.ini(可以跳过这一步,直接使用默认)
命令:vim frps.ini
# frps.ini
[common]
bind_port = 7000
5. 开启运行 frp 服务端
简单运行一次:./frps -c ./frps.ini
持久后台运行:nohup ./frps -c ./frps.ini > frps.log 2>&1 &
也可以作为服务,开机自启动(一般来说服务器不关机,所以视情况采用这种策略)
二、 配置内网服务器
假设内网服务器的登录用户名为 inner_user, 密码为 123
1. 上传 frp 软件到内网服务器(软件版本最好要和服务器一致)
2. 解压并进入 frp 目录
3. 编辑 frpc.ini
命令: vim frpc.ini
# frpc.ini
[common]
server_addr = server_ip(e.g. x.x.x.x)
server_port = 7000
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000
4. 运行 客户端服务
单次测试使用:./frpc -c ./frpc.ini
永久后台运行:nohup ./frpc -c ./frpc.ini > frpc.log 2>&1 &
5.至此全部配置完成
三、如何登录内网服务器
通过以上设置,我们相当于获得一个这样的服务器:
主机:server_ip(外网服务器固定IP)
端口: 6000(即 frpc.ini 中 [ssh] section 的 remote_port)
用户名:inner_user(内网服务器用户名)
密码:123(内网服务器用户名对应的密码)
有了以上信息,就可以使用xshell,ssh,等进行登录
四、如何关闭
1. 对于单次测试使用,直接 Ctrl+C 停止即可
2. 对于 使用 nohup 后台运行的程序,使用 ps aux | grep frpc 或者 ps aux | grep frps 找到对应的内网客户端进程和外网服务器进程,然后 kill -9 pid 即可
注意:
对于外网服务器需要开放端口,如果使用云服务的主机,在安全策略里面开放 tcp端口,7000(frps.ini 的bind_port),6000 (frpc.ini [ssh]中的remote_port)
一个外网服务器,多个内网服务器
一、外网服务器端不需要修改
二、修改内网服务器 frpc.ini
在上面配置学会之后,主要更改两个地方,
# frpc.ini
[common]
server_addr = server_ip(外网服务器地址)
server_port = 7000
[ssh] #这里保证每个内网服务器要用不同的名字,这样服务器才能辨别
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000 # 这里保证每个内网服务器用不同的名字,这样才能无冲突的登录
三、更改云服务厂商的安全策略,开放 remote_port
以上,可以简单粗暴的搭建一个内网穿透