目录
linux和windows的安装包:https://github.com/fatedier/frp/releases
俩常用命令
yum check-update 检查可更新的所有软件包
yum update 下载更新系统已经安装的软件包
tar -zxvf frp_0.33.0_linux_amd64.tar.gz 解压
一、配置:
1、修改公网服务器上的服务端配置文件 frps.ini,如下:
vim frps.ini
[common]
bind_port = 7000 #frp服务端端口(必须)
2、修改内网目标主机的客户端配置文件 frpc.ini,如下:
[common]
server_addr = xxx.xxx.xxx.xxx #frp服务端地址,必须是公网ip或者域名,这里假设为xxx.xxx.xxx.xxx
server_port = 7000 #frp服务端端口,即填写服务端配置中的 bind_port
[ssh]
type = tcp #连接类型,填tcp或udp
local_ip = 127.0.0.1 #填127.0.0.1或内网ip都可以
local_port = 22 #需要转发到的端口,ssh端口是22
remote_port = 6000 #frp服务端的远程监听端口,即你访问服务端的remote_port就相当于访问客户端的 local_port,如果填0则会随机分配一个端口
二、运行:
在公网服务器上运行服务端程序:
nohup ./frps -c frps.ini &
查看 nohup.out 的信息,success
tail -f nohup.out
2018/09/17 21:34:01 [I] [service.go:130] frps tcp listen on 0.0.0.0:7000
2018/09/17 21:34:01 [I] [root.go:207] Start frps success
2018/09/17 22:06:02 [I] [service.go:319] client login info: ip [125.71.229.32:60516] version [0.21.0] hostname [] os [linux] arch [amd64]
2018/09/17 22:06:02 [I] [proxy.go:217] [7940291c148c2fca] [ssh] tcp proxy listen port [6000]
2018/09/17 22:06:02 [I] [control.go:335] [7940291c148c2fca] new proxy [ssh] success
在内网目标主机上运行客户端程序:
nohup ./frpc -c frpc.ini &
查看 nohup.out 的信息,success
tail -f nohup.out
2018/09/17 22:42:22 [I] [proxy_manager.go:300] proxy removed: []
2018/09/17 22:42:22 [I] [proxy_manager.go:310] proxy added: [ssh1]
2018/09/17 22:42:22 [I] [proxy_manager.go:333] visitor removed: []
2018/09/17 22:42:22 [I] [proxy_manager.go:342] visitor added: []
2018/09/17 22:42:23 [I] [control.go:246] [0624b332c3465118] login to server success, get run id [0624b332c3465118], server udp port [0]
2018/09/17 22:42:23 [I] [control.go:169] [0624b332c3465118] [ssh1] start proxy success
三、配置多个内网主机:
1、内网机器1和内网机器2的配置应该区分如下: ssh的名字也要区分开来
内网机器1:
[ssh] //不同点
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000 //不同点
内网机器2:
[ssh1] //不同点
type = tcp
local_ip = 127.0.0.1
local_port = 22 remote_port = 6001 //不同点
2、在两个内网机器上分别运行 frpc 客户端程序后,一般就可以通过以下的方法 ssh 登录:
内网机器1:
$ ssh -p 6000 user_name1@server_addr
内网机器2:
$ ssh -p 6001 user_name2@server_addr
以上参数中,server_addr是公网服务器的公网ip;user_name1、user_name2 分别是内网机器1、2的用户名,之后分别使用登录密码就可以登录。
3、但是有时候会发现按照以上的配置还是使 frp 的服务端与客户端建立连接,在客户端上会出现以下错误:
2018/09/17 22:02:23 [W] [control.go:113] login to server failed: dial tcp xxx.xxx.xxx.xxx:7000: connect: connection timed out
dial tcp xxx.xxx.xxx.xxx:7000: connect: connection timed out
登录到阿里云对应云服务器的管理控制台,如下找到左上方的本实例安全组;
再点击右上角的添加安全组规则即可。