前言
每次到放假回家,笔者都会遇到实验室服务器访问不到的困扰。因为实验室服务器没有公网 IP,在外无法直接访问, 经过一番的研究之后,终于找到了一个相对好用的内网穿透方案。之前曾尝试过TeamViewer、花生壳之类的软件,但效果都差强人意。
- 远程桌面使用TeamViewer。可用,但需双方都要安装TeamViewer软件,且版本要一致。
- 使用花生壳软件进行DDNS解析,可用,但免费版本有带宽限制,使用效果不理想。
- 搭建frp服务器进行内网穿透,推荐使用,可以达到不错的速度,且可以开放任何想要的端口,可以让处于内网或防火墙后的设备对外界提供服务,它支持HTTP、TCP、UDP等众多协议。
准备
需要准备的东西:
- 一台公网的服务器VPS,笔者使用的是阿里云服务器配置要求不用太高,网速会影响连接的质量
- frp软件包
教程
下载frp软件
下载frp软件并进行解压
wget https://github.com/fatedier/frp/releases/download/v0.39.1/frp_0.39.1_linux_amd64.tar.gz
解压后可看到所有文件,但我们只需要关注如下几个文件
- frps: 服务端启动程序
- frps.ini:服务端配置文件
- frpc:客户端启动程序
- frpc.ini:客户端配置文件
配置内网服务器
比如我想映射出内网的 8080 端口,那么需要怎么配置呢?
frpc.ini配置如下:
[common]
# server ip
server_addr = xxx.xxx.xxx.xxx
# server端配置的端口
server_port = 2221
[web]
type = tcp
local_ip = 127.0.0.1
# 本地要映射的端口
local_port = 8080
# server端访问的端口
remote_port = 8080
- server_addr: 公网服务器VPS的IP。
- server_port: 服务端设置的端口。
- type: 代理的类型。
- local_ip: 本地IP。
- local_port: 内网客户端设置的端口。
- remote_port: 内网提供给外网访问的服务端口。
配置公网服务器VPS
公网服务器上只需要修改 frps.ini 文件 frps.ini配置如下:
[common]
bind_port = 2221
修改后运行 frps,开启服务端程序,然后再内网服务器上执行 frpc 程序,若配置正确,则可连接成功。 服务端会出现以下类似信息。
2022/02/13 18:27:31 [I] [proxy.go:192] [e37bd8c0f0a34a7c] [ssh25] tcp proxy listen port [8010]
2022/02/13 18:27:31 [I] [control.go:320] [e37bd8c0f0a34a7c] new proxy [ssh25] success
因为默认阿里云服务器仅仅开放22等其他常用端口,对于自定义映射的端口可能未开放,所以需要自己开放公网服务器的映射端口,使得在公网上可以访问。
配置成功后即可访问http://公网服务器IP:8080,大功告成。
文档信息
- 本文作者:ironartisan
- 本文链接:https://ironartisan.github.io/2022/02/13/%E5%85%B6%E4%BB%96-%E5%86%85%E7%BD%91%E7%A9%BF%E9%80%8F%E6%95%99%E7%A8%8B/
- 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)