frp 内网穿透
背景
公司网络没有公网IP,无法将内网服务器的服务通过互联网供给在上海、北京等员工使用,因此需要通过内网穿透服务,通过具备公网IP的搬瓦工服务器,安全、便捷地将内网服务暴露到公网。
安装配置
内网和搬瓦工服务器系统均为Ubuntu.
选择对应版本,我这里为frp_0.53.2_linux_amd64.tar.gz
下载
wget https://github.com/fatedier/frp/releases/download/v0.53.2/frp_0.53.2_linux_amd64.tar.gz
解压缩
tar -xzvf frp_0.53.2_linux_amd64.tar.gz
编辑配置文件
搬瓦工服务器
在 frps.toml 文件中添加以下内容,以指定 HTTP 请求的监听端口为 8080:
bindPort = 7000 vhostHTTPPort = 8080
如果需要配置 HTTPS 代理,还需要设置 vhostHTTPSPort。
内网服务器
在 frpc.toml 文件中添加以下内容,确保设置了正确的服务器 IP 地址、本地 Web 服务监听端口和自定义域名:
serverAddr = "x.x.x.x" serverPort = 7000 [[proxies]] name = "web" type = "http" localPort = 80 customDomains = ["www.yourdomain.com"] [[proxies]] name = "web2" type = "http" localPort = 8080 customDomains = ["www.yourdomain2.com"]
启动frps 和 frpc
搬瓦工服务器: ./frps -c ./frps.toml
内网服务器: ./frpc -c ./frpc.toml
需要在后台长期运行,结合 systemd 配置(不需要则跳过):
安装systemd
如果您的 Linux 服务器上尚未安装 systemd,可以使用包管理器如 yum(适用于 CentOS/RHEL)或 apt(适用于 Debian/Ubuntu)来安装它:
# 使用 yum 安装 systemd(CentOS/RHEL) yum install systemd # 使用 apt 安装 systemd(Debian/Ubuntu) apt install systemd
搬瓦工服务器 ,创建 frps.service 文件
使用文本编辑器 (如 vim) 在 /etc/systemd/system 目录下创建一个 frps.service 文件,用于配置 frps 服务
$ sudo vim /etc/systemd/system/frps.service
写入内容
[Unit] # 服务名称,可自定义 Description = frp server After = network.target syslog.target Wants = network.target [Service] Type = simple # 启动frps的命令,需修改为您的frps的安装路径 ExecStart = /path/to/frps -c /path/to/frps.toml [Install] WantedBy = multi-user.target
使用 systemd 命令管理 frps 服务
# 启动frp sudo systemctl start frps # 停止frp sudo systemctl stop frps # 重启frp sudo systemctl restart frps # 查看frp状态 sudo systemctl status frps
设置 frps 开机自启动
sudo systemctl enable frps
内网服务器 ,创建 frpc.service 文件
使用文本编辑器 (如 vim) 在 /etc/systemd/system 目录下创建一个 frpc.service 文件,用于配置 frpc 服务
$ sudo vim /etc/systemd/system/frpc.service
写入内容
[Unit] # 服务名称,可自定义 Description = frp client After = network.target syslog.target Wants = network.target [Service] Type = simple # 启动frpc的命令,需修改为您的frpc的安装路径 ExecStart = /path/to/frpc -c /path/to/frpc.toml [Install] WantedBy = multi-user.target
使用 systemd 命令管理 frpc 服务
# 启动frp sudo systemctl start frpc # 停止frp sudo systemctl stop frpc # 重启frp sudo systemctl restart frpc # 查看frp状态 sudo systemctl status frpc
设置 frpc 开机自启动
sudo systemctl enable frpc
域名解析
将 www.yourdomain.com 和 www.yourdomain2.com 的域名 A 记录解析到服务器的 IP 地址 x.x.x.x
使用浏览器访问 http://www.yourdomain.com:8080 即可访问内网机器上的 80 端口服务,访问 http://www.yourdomain2.com:8080 可以访问内网机器上的 8080 端口服务。
通过反向代理及二级域名访问
设置域名解析
通过二级域名 gitlab.yourdomain.com 域名 A 记录解析到服务器的 IP 地址 x.x.x.x ,目前已经可以通过http://gitlab.yourdomain.com:8080 访问内网的gitlab服务
由于搬瓦工服务器已经安装了aaPanel面板,通过新建网站
申请SSL证书
设置反向代理
已可通过http://gitlab.yourdomain.com 访问内网服务器gitlab
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~
没钱告辞
校验提示文案
薅羊毛的大表哥
校验提示文案
盗版方文山
校验提示文案
薅羊毛的大表哥
校验提示文案
没钱告辞
校验提示文案
盗版方文山
校验提示文案