centos7使用frp实现内网穿透

参考网络上其他人文章。将他人技术文章亲自测试并总结补充。
实现内网穿需要有一台公网服务器,域名。(本文将公网服务器称为服务端,内网服务器称为客户端)
(需要开启相关的端口。相关端口没开通,访问就会失败。)
frp下载地址:http://getfrp.yzxx-soft.com/
https://github.com/fatedier/frp
本文使用软件:frp_0.8.1_linux_amd64.tar.gz
本文使用系统:centos7(公网一台,内网一台),其他系统配置类似
本文使用a.com代替实际域名,10.10.10.10代替实际公网ip,实际中请使用自己的域名和ip并解析到服务端
主域名:a.com
公网服务器ip:10.10.10.10
内网服务器ip:192.168.198.229

centos7 frp安装和配置(其他系统配置类似)

将软件下载到服务器和客户端(服务端和客户端相同)
解压frp软件包

tar -zxvf frp_0.8.1_linux_amd64.tar.gz

进入解压后的文件夹

cd frp_0.8.1_linux_amd64

文件说明

frps.ini: 服务端配置文件
frps: 服务端软件
frpc.ini: 客户端配置文件
frpc: 客户端软件

2、修改服务端配置
修改服务端frps.ini

vi frps.ini

修改如下内容(由于本文为测试,所以将原配置文件清空),或对照如下修改。

[common]
bind_port = 7000
vhost_http_port = 80
[ssh]
listen_port = 6000
auth_token = 123
[web]
type = http
custom_domains = test1.a.com
auth_token = 123
[web2]
type = http
custom_domains = test2.a.com
auth_token = 123

开启服务端服务(在frp_0.8.1_linux_amd64目录下)

./frps -c ./frps.ini

服务端出现如下启动成功

配置说明

[common] 必须设置
bind_port 是自己设定的frp服务端端口
vhost_http_port 是自己设定的http访问端口
[ssh] ssh反向代理(不是必须设置)
listen_port 是自己设定的ssh访问端口
auth_token用于身份认证(以下皆是)。
[web] http反向代理[]里的内容可以自己设定,但是客户端和服务端必须要对应(如[aaa],[bbb]);
type 为服务类型,可以设为http,https
custom_domains为要映射的域名,记得域名的A记录要解析到外网主机的IP。
[web2]同上(可设置多个)

3、修改客户端配置(win系统找到相应配置文件进行类似配置)
修改服务端frpc.ini

vi frpc.ini

修改如下内容(由于本文为测试,所以将原配置文件清空),或对照如下修改。

[common]
server_addr = 10.10.10.10
server_port = 7000
auth_token = 123
[ssh]
local_port = 22
[web]
type = http
local_port = 80
[web2]
type = http
local_port = 8080

开启客户端服务(在frp_0.8.1_linux_amd64目录下)

./frpc -c ./frpc.ini

客户端出现如下启动成功

配置说明

[common]必填
server_addrfrp服务端的ip(也就是外网主机的IP)
server_portfrp服务端的bind_prot。
[ssh]
local_port客户端ssh端口。
[web]
type对应服务端配置
local_port客户端访问端口。
[web2]同上

测试(本文中客户端已经装了Nginx服务)

http测试
访问内网http://192.168.198.229

访问域名http://test1.a.com

2.ssh连接内网机器测试(linux系统)
连接设置

连接结果

3.win系统也可通过tcp远程桌面连接,只需要把客户端端口改成win远程默认端口:3389。
后台启动(使用nohup,以服务端为例子,客户端类似)
启动(进入frp目录)

nohup ./frps -c ./frps.ini &     #启动服务端 带&符号

启动后会返回相关的pid
关闭

kill 19619                     #输入你系统中返回的pid
kill -9 $(pidof frps)          #或者使用这个命令关闭,$(pidof frps)中frps为进程名称客户端为frpc

查看状态

netstat -antpl                 #看到7000端口说明后台启动成功(配置文件中配置的frp服务端口)
点赞