说明
参考网络上其他人文章。将他人技术文章亲自测试并总结补充。
实现内网穿需要有一台公网服务器,域名。(本文将公网服务器称为服务端,内网服务器称为客户端)
(需要开启相关的端口。相关端口没开通,访问就会失败。)
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
: 客户端软件
- 修改服务端配置
修改服务端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]
同上(可设置多个)
- 修改客户端配置(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_addr
frp服务端的ip(也就是外网主机的IP)
server_port
frp服务端的bind_prot。
[ssh]
local_port
客户端ssh端口。
[web]
type
对应服务端配置
local_port
客户端访问端口。
[web2]
同上
测试(本文中客户端已经装了Nginx服务)
- http测试
访问内网http://192.168.198.229
访问域名http://test1.a.com
-
ssh连接内网机器测试(linux系统)
连接设置
连接结果
- 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服务端口)