首页 > 技术文章 > frp-内网穿透(外网访问内网服务器)

TianyuSu 2019-11-29 21:08 原文

快速配置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 

 

以上,可以简单粗暴的搭建一个内网穿透

详细内容请看:github 中文文档 参数解释

 

推荐阅读