Linux教程

基于linux环境下的 FRP子网穿透协议的部署

本文主要是介绍基于linux环境下的 FRP子网穿透协议的部署,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

目录

一、配置:

二、运行:

三、配置多个内网主机:


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

登录到阿里云对应云服务器的管理控制台,如下找到左上方的本实例安全组; 

再点击右上角的添加安全组规则即可。

这篇关于基于linux环境下的 FRP子网穿透协议的部署的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!