内网穿透
即NAT穿透,本质上是通过映射端口,使得内网的网络服务可以被外网所访问
嘛,,实际意义就是,大家家里的网络都是运营商分配的ip,并不是外网ip,无法直接用家里的电脑/服务器提供网络服务,譬如网站等
通过内网穿透即可将内网中你所提供的网络服务的端口映射到外网某ip的某端口,即可实现通过被映射的外网端口访问到内网服务
一般有很多提供这种服务的服务商譬如花生壳等,也有很多人知道一些譬如Ngrok的服务,而这里我所要描述的是一款名为frp的应用
what is the 「frp」
frp 是一个可用于内网穿透的高性能的反向代理应用,支持 tcp, udp, http, https 协议。
来自文档描述
frp项目github地址
话说了解frp的契机嘛,就是MinecraftServer了
腾讯云阿里云等的小基础配置根本带不动现在越来越卡优化越来越差游戏版本了,也买不起更高配置的VPS了,当然是用自己的电脑开最经济。那就得解决内网问题了。正好不知道在哪儿看到了SakuraFrp的宣传,那与其用公用的那当然不如自建啦。
当然这玩意的用处不只是搭游戏服务器,无论是网站还是什么服务基本上都可以,大部分的网络通信协议都支持,只不过就普通的网站之类的服务,vps的基础配置也绰绰有余了,犯不着用这玩意在自己家搭,,不过话说回来,搭个NAS啊监控啊之类的还是用得着的恩恩。
frps (server) 部署配置
首先是服务端,那做内网穿透的话,服务端当然是建在有公网ip的远程服务器上。 (服务端机器相当于是服务提供者和服务访问者中间的桥梁)
先在Frp官网(github)上下载下来的对应系统的frp程序包,解压后可以看到frp的服务端、客户端的程序和配置文件。
因为这里是做服务端,可以先把客户端相关的东西删了(当然不删也无所谓)。在frp目录下执行:
1 | rm ./frpc* |
现在就该修改配置文件了
frpc (client) 配置
现在轮到客户端了。
不过提一下,这里的客户端指的是提供想要被外网访问的服务的内网机器。
提这一句的原因是,frp的客户端还有一种用法,是在stcp这种安全访问的服务上,或者是xtcp这种p2p连接服务上,客户端需要同时设置在内网服务和访问者两端,当然这种情况我这篇博文不会展开描述,有兴趣欢迎去看官方文档