前言
内网穿透,也即 NAT 穿透,进行 NAT 穿透是为了使具有某一个特定源 IP 地址和源端口号的数据包不被 NAT 设备屏蔽而正确路由到内网主机。 说人话就是我们想在不连接家里的wifi的情况下访问我们家里面的电脑和其他设备时,由于家庭宽带没有固定的公网ip使得我们无法向访问云服务器一样 直接访问,这时候我们就需要使用到内网穿透技术,让我们在其他网络下也能访问到处于内网环境的设备。
总的来说,内网穿透技术对于实现内网设备与外部网络的通信非常重要。而FRP作为其中的一种技术,具有许多优点,可以满足各种不同的需求。如果你对内网穿透技术感兴趣,不妨了解更多关于FRP的信息,以便更好地实现内网设备与外部网络的通信。
一、服务端部署
1.准备
首先你需要一个服务器,我的是阿里云主机。部署好Docker,假设你已经准备好,那我们继续。
2.开始安装
# 创建存放目录
sudo mkdir /etc/frp
3.写入配置文件
#进入文件目录
cd /etc/frp
#写入配置文件
cat>frps.toml <<-EOF
# 监听端口
bindPort = 7000
# 服务端将只接受 TLS链接
transport.tls.force = true
# 后台管理地址
webServer.addr = "0.0.0.0"
# 后台管理地址
webServer.port = 7500
# 后台登录用户名
webServer.user = "admin"
# 后台登录密码
webServer.password = "admin"
# 身份验证令牌,frpc要与frps一致
auth.token = "yGlHDLwnlZMOYu2S"
EOF
4.拉取镜像并启动Frps
docker run --restart=always --network host -d -v /etc/frp/frps.toml:/etc/frp/frps.toml --name frps snowdreamtech/frps
镜像拉取成功,并成功启动。输入服务器IP:7000端口号访问frp后台,密码都为admin,均可在配置文件中修改;记得别忘记在防火墙允许必要运行端口(重要!!!)
二、客户端部署
1.准备
具有docker环境的客户端均可部署,可以在Ikuai软路由、OpenWRT软路由、群晖NAS、甚至本地CentOS上部署。本次搭建以CentOS演示。群晖命令行部署比页面配置快多了,两行命令即可部署完成,感兴趣的可以看我另外一篇文章。
2.开始安装
# 创建存放目录
sudo mkdir /etc/frp
3.写入配置文件
#进入文件目录
cd /etc/frp
#写入配置文件
cat>frpc.toml <<-EOF
#从v0.50.0版本开始,transport.tls.enable的默认值为 true
transport.tls.enable = true
#公网服务端IP地址或域名
serverAddr = "8.130.113.101"
#公网服务端通信端口
serverPort = 7000
#令牌,与公网服务端保持一致
auth.token = "yGlHDLwnlZMOYu2S"
#示例
#[ssh] 为服务名称
#type = "tcp" 为连接的类型,此处为tcp
#localIP = "127.0.0.1" 为中转客户端实际访问的IP
#localPort 为目标端口
#remotePort 为远程端口
[[proxies]]
name = "Synology"
type = "tcp"
localIP = "192.168.0.62"
localPort = 5000
remotePort = 5000
EOF
4.拉取镜像并启动Frpc
docker run --restart=always --network host -d -v /etc/frp/frpc.toml:/etc/frp/frpc.toml --name frpc snowdreamtech/frpc
镜像拉取成功,并成功启动。我的群晖地址是192.168.0.62
,端口号是5000
,输入阿里云服务器IP地址:5000端口号即可访问呢群晖,记得放行必要运行端口(重要!!!)
5.配图
参考文献
https://github.com/snowdreamtech/frp
评论