注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

早衰男的巢

大音希声 道隐无名

 
 
 

日志

 
 

内网穿透:FRP,客户端(双网卡)走指定的网关  

2017-06-03 17:56:46|  分类: others note. |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

前言:

移动送了条20M的对等光纤,可惜是内网,没有公网IP; 手上有个VPS,ss服务被墙了现在正好闲着。于是就想着配个时下很火的FRP试试。

内网的机器双网卡分别已经接上了电信的200M/5M 光纤和 移动的 20M/20M。平时的下载和内网的服务什么的想走电信的。用移动的线路来做穿透。

需求:

1.给VPS部署好FRPS

2.给家里双线的机器部署 FRPC 并且设置走 非默认的 移动网关连接 FRPS。

配置步骤

1. 服务端(VPS)

vps的IP 是 123.1.2.3 (举个栗子)

从官方 https://github.com/fatedier/frp/releases 下载最新版并安装, 当期最新版是 v0.11.0

下载的包里同时包含(公网)服务端 frps 和(内网)客户端 frpc,vps上只需要配置和执行frps

#wget https://github.com/fatedier/frp/releases/download/v0.11.0/frp_0.11.0_linux_amd64.tar.gz

#tar -zxvf frp_0.11.0_linux_amd64.tar.gz

#cd frp_0.11.0_linux_amd64

#vim frps.ini

编辑服务端的配置如下

  1: [common]
  2: bind_addr = 0.0.0.0
  3: #frp服务端口
  4: bind_port = 7000
  5: 
  6: # 如果需要代理 web(http) 服务,则开启此端口
  7: #映射http服务端的端口,这里用了88
  8: vhost_http_port = 88
  9: vhost_https_port = 8443
 10: 
 11: # frp 控制面板
 12: dashboard_port = 7500
 13: dashboard_user = admin
 14: dashboard_pwd = {web管理面板的登录密码}
 15: 
 16: # 默认日志输出位置(这里输出到标准输出)
 17: log_file = /dev/stdout
 18: # 日志级别,支持: debug, info, warn, error
 19: log_level = info
 20: log_max_days = 3
 21: 
 22: # 是否开启特权模式(特权模式下,客户端更改配置无需更新服务端)
 23: privilege_mode = true
 24: # 授权 token ,16位以上长度建议随机生成
 25: privilege_token = sBa7d221faweADQWE1123Da1A
 26: # 特权模式下允许分配的端口(避免端口滥用)
 27: privilege_allow_ports = 4000-50000
 28: 
 29: # 心跳检测超时
 30: # heartbeat_timeout = 30
 31: 
 32: # 后端连接池最大连接数量
 33: max_pool_count = 100
 34: 
 35: # 口令超时时间
 36: authentication_timeout = 900

然后 :wq 保存

尝试运行

#./frps –c ./frps.ini

提示

2017/06/03 13:32:59 [I] [service.go:114] Dashboard listen on 0.0.0.0:7500
2017/06/03 13:32:59 [I] [main.go:112] Start frps success
2017/06/03 13:32:59 [I] [main.go:114] PrivilegeMode is enabled, you should pay more attention to security issues

代表服务已经起来了,让服务在后台运行,把上面的命令改一下

#nohup ./frps –c ./frps.ini &

之后需要跟踪运行状况的话只需要

#tail –f nohup.out

*如果需要开机自动启动服务,则需要修改 /etc/rc.local ,这里跳过。

我们从浏览器 上 访问 http://123.1.2.3:7500/ 按提示输入配置文件对应的账号 admin 和 web管理面板的密码。可以看到frp服务端的运行状况,如

image

接下来配置内网的客户端

2. 内网端 FRPC

前几个下载步骤和服务端是类似的,只是这里需要配置和运行的改为 frpc 几 frpc.ini

#wget https://github.com/fatedier/frp/releases/download/v0.11.0/frp_0.11.0_linux_amd64.tar.gz

#tar -zxvf frp_0.11.0_linux_amd64.tar.gz

#cd frp_0.11.0_linux_amd64

#vim frpc.ini

配置如下

  1: [common]
  2: server_addr = 123.1.2.3
  3: server_port = 7000
  4: privilege_token = sBa7d221faweADQWE1123Da1A
  5: 
  6: [web]
  7: type = http
  8: local_port = 80
  9: custom_domains = your.domain.com

common内的三项分别和vps的IP、前面设置的frps.ini 的 bind_port、privilege_token 一致对应

web部分则根据本机httpd服务的设置来配置,

还有需要的一个就是准备一个域名,把 A记录指向到 vps的IP ,本例是 123.1.2.3

接着我们和服务端相似的让客户端服务在后台运行

#./frpc –c ./frpc.ini

得到类似提示

image

代表服务端连上了。

这个时候刷新 http://123.1.2.3:7500/? 应该看到已经有一个连接

image

我们打开 http://your.domain.com:88 (域名替换成你自己的,需如上文所说设置好DNS的A记录到公网机的IP),如果能打开内网机的网页,基本配置完成了。

这时候内网机器的frp服务走的是默认(电信)网关,还需要在内网机进一步设置

3. 设置路由规则让流量走指定的网关(内网机)

先来看两张网卡的设置

eth0 电信(默认网关)

# cat /etc/sysconfig/network-scripts/ifcfg-eth0

  1: DEVICE=eth0
  2: HWADDR=94:18:82:38:14:A4
  3: TYPE=Ethernet
  4: UUID=10b4522d-53f1-47a9-b0e9-88170c6416da
  5: ONBOOT=yes
  6: NM_CONTROLLED=yes
  7: BOOTPROTO=static
  8: IPADDR=192.168.0.99
  9: NETMASK=255.255.255.0
 10: NETWORK=192.168.0.0

eth1 移动

# cat /etc/sysconfig/network-scripts/ifcfg-eth1

  1: DEVICE=eth1
  2: HWADDR=94:18:82:38:14:A5
  3: TYPE=Ethernet
  4: UUID=c5f8d7eb-c2e6-42e9-8f62-1d8c8b95e6c7
  5: ONBOOT=yes
  6: NM_CONTROLLED=yes
  7: BOOTPROTO=static
  8: IPADDR=192.168.31.99
  9: NETMASK=255.255.255.0
 10: NETWORK=192.168.31.0

要让所有和 vps 的通讯 都走移动的网关(192.168.31.1),输入下面这句

#route add -net 123.1.2.3 netmask 255.255.255.255 gw 192.168.31.1 dev eth1

查看路由表

#netstat –rn

  1: Kernel IP routing table
  2: Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
  3: 123.1.2.3       192.168.31.1    255.255.255.255 UGH       0 0          0 eth1
  4: 192.168.0.0     0.0.0.0         255.255.255.0   U         0 0          0 eth0
  5: 192.168.31.0    0.0.0.0         255.255.255.0   U         0 0          0 eth1
  6: 169.254.0.0     0.0.0.0         255.255.0.0     U         0 0          0 eth0
  7: 169.254.0.0     0.0.0.0         255.255.0.0     U         0 0          0 eth1
  8: 0.0.0.0         192.168.0.10    0.0.0.0         UG        0 0          0 eth0

路由规则已经加上

重启 frpc 的服务,查看VPS上的 frps输出,连接已经从电信IP变更为移动的IP。监控两个网关的流量,确认现在流量已经走移动了。

至此配置就已经完成。如果需要完善点,就是把路由表和frpc的启动命令添加到 /etc/rc.local ,让服务和路由规则自启。

--备忘如上--

  评论这张
 
阅读(192)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018