简介

  人在学校外,想要查学分?想要查成绩?想要上知网?很多时候不想麻烦别人,这个时候就需要自己折腾折腾了。。。
  之前有了解过内网穿透的方式,可以使用ngrok、natapp、autossh,但是我想要的是外网机器最终达到如在内网一样的环境,最终选定了frp。

关于frp

  引一段官网的话:

frp是一个高性能的反向代理应用,可以帮助您轻松地进行内网穿透,对外网提供服务,支持 tcp, http, https 等协议类型,并且 web 服务支持根据域名进行路由转发。

  我的理解如图:

frp
frp

准备

  • 内网机器一台(10.8..)
  • 外网机器一台(47...)
      
      首先在内网机器(10.8.
    .*)上搭建好softether服务,可以参照这里,搭建完成,创建登陆用户、开启虚拟路由器和虚拟DHCP、启用Openvpn克隆server功能,这里我选择UDP类型的2333端口。
    openvpn
    openvpn
      点击‘为Openvpn Client生成配置样本文件’,保存到本地,修改remote地址为公网服务器地址:
    config
    config

开始使用

外网机器(47...*)

  外网机器作为frp server端,点击这里下载tar包。wget下来,tar解压,编辑配置文件,如我的frps.ini:

1
2
3
4
5
6
7
8
[common]
bind_addr = 0.0.0.0
bind_port = 7000
auto_token = 123456

dashboard_port = 7500
dashboard_user = admin
dashboard_pwd = admin

[common]部分是必须有的配置,其中bind_port是自己设定的frp服务端端口,auto_token必须与frpc端配置一致。后三行启用dashboard,可以选择配置。
最终启动: nohup ./frps -c ./frps.ini &

内网机器(10.8..)

  内网机器作为frp client端,tar包同上。编辑配置文件,如我的frpc.ini:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
[common]
server_addr = 47.*.*.*
server_port = 7000
auto_token = 123456

[ssh]
type = tcp
local_ip = 127.0.0.1 # ssh服务的地址
local_port = 22 # ssh服务的端口
remote_port = 2277 # 最终公网对外开放的ssh端口

[p2p]
type = tcp
local_ip = 127.0.0.1
local_port = 5555
remote_port = 5555

[openvp]
type = udp
local_ip = 127.0.0.1
local_port = 2333
remote_port = 2333

  保存配置,运行frp客户端:nohup ./frpc -c ./frpc.ini &

完成

  Done!
  之前试用softether客户端,可以点击连接,但是在分配ip地址时出现问题,而openvpn客户端可以正常连接。