内网穿透
内网穿透
内网穿透
本文件只介绍用 frp 连接内网 VPN 服务器,其他的功能及实现方法还请到官网查看。
题外话
试用了下花生壳全家套,发现要钱且免费的不太好用,作为一名学生党当然是找开源免费的东西代替啦。之前发现 SoftEtherVPN 竟然自带内网穿透,欣喜之余发现所用的 VPN 协议竟是 SSTP,Apple 全家桶都不原生支持该协议,所以还是利用 frp 进行内网穿透。
注意!!!该方法只在某些机器上成功了,我在实际测试中遇到不少失败,如有网友发现错误,请及时指出,谢谢!
frp 介绍
frp 是一个可用于内网穿透的高性能的反向代理应用,支持 tcp, udp, http, https 协议。 Github 主页
访问内外 VPN
由于 frp 的原理是端口映射,因此我们首先需要一台拥有外网 IP 的服务器,以此做中转,连接内网服务器。关于 frp 的实现原理可以查看项目主页了解。
由于我搭建的 VPN 协议用的是 L2TP over IPsec 协议,L2TP over IPsec 协议用的是 500 和 4500 端口,因此我们需要对这两个端口进行端口映射。
这里 frp 规定处于内网的机器是客户端,用 frpc 工具和 frpc.ini 配置文件。拥有外网 IP 地址的是服务端,用 frps 和 frps.ini 配置文件。
服务端配置
修改拥有外网 IP 服务器的 frps.ini 文件,下面是适合 L2TP over IPsec 协议的配置,如果是其他配置请做适当的修改。
# frps.ini
[common]
bind_port = 7000
启动 frps:
./frps -c ./frps.ini
###客户端配置 frpc 内置了 http proxy 和 socks5 插件,可以使其他机器通过 frpc 的网络访问互联网。 启动 frpc,启用 http_proxy 或 socks5 插件(plugin 换为 socks5 即可), 配置如下:
# frpc.ini
[common]
server_addr = x.x.x.x
server_port = 7000
[vpn_port1]
type = udp
local_port = 500
remote_port = 500
[vpn_port2]
type = udp
local_port = 4500
remote_port = 4500