内网穿透
现实中,我们一般并没有公网 IP,要想实现内网穿透我提供了下面两种可行的方案:
- 购买别人提供的内网穿透服务。如花生壳提供的 ddns 动态域名解析服务,好处就是方便不折腾,费用相对也够亲民。对于一部分只想不花钱的小伙伴,这里推荐的是另一种穿透方案 Sakura Frp——花费 1 元 实名认证后可获得两条免费的隧道。(免费版的带宽速度上限 10 M,流量一个月 10 GB)
- 如果想拥有更好的体验那么就需要花费一定的价钱购买一台具有公网 IP 的云主机部署内网穿透服务,像这种通过自建服务实现内网穿透的方案好处就是有更多的自定义空间,不受服务商的约束。缺点同样也是比较明显的,资费更高同时也受限于云服务器的带宽。
Sakura Frp
Windows 平台
[Sakura Frp 注册入口] (https://openid.13a.com/register)
认证成功后可以创建两条免费的隧道了,要想使用隧道还需要在官网下载客户端了,Sakura Frp 的客户端几乎覆盖了当前所有平台(linux mac windows),可以按需下载安装。
DDNSTO,小白使用
frp, github 70kstar
Cloudflare Argo Tunnel
自建
前置条件:
- 拥有公网 IP 的主机(记得在云服务器控制台开启端口策略)
- 可以访问 GitHub
在官方的[仓库](GitHub - fatedier/frp: A fast reverse proxy to help you expose a local server behind a NAT or firewall to the internet.下载对应自己系统的程序。具体看官方文档
服务端配置
- 将下载好的包上传至服务器解压
# 解压上传的 tar 包
tar -xzvf frp_0.44.0_darwin_amd64.tar.gz
# 将解压的包重命名为
frp mv frp_0.44.0_darwin_amd64 frp
# cd 进入目录,目录内容如下:
cd frp
# frps为可执行程序 frps.ini 为配置文件,服务端我们只需要这两个文件,frpc frpc.ini 为客户端文件。- 在启动服务端之前我们要去修改一下 frps.ini 配置文件,这里使用了一个最简化的配置,设置了 frp 服务端接收客户端连接的端口:
vim frps.ini
[common]
bind_port = 7000服务端的配置写好后就需要启动 frps 服务器了,但是为了方便控制 frps 的启动和停止我们需要利用 systemd 来管理 frps 服务,下面我们来做一下操作:
客户端配置
通过 ssh 访问内网机器
前面和服务端步骤一致,到修改 frpc.ini 文件,假设 frps 服务端的公网 IP 为 100.100.1.100
vim frpc.ini
[common]
server_addr = 100.100.1.100
server_port = 7000
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000
我们可以通过 ssh 访问内网机器,假设用户名为 opus:
ssh -p 6000 opus@100.100.1.100