内容目录
FRP内网穿透搭建记录
1.前言
虽然现在家里有公网环境,但是有一台在国内的服务器,没有公网的情况下,就需要用到内网穿透。使用FRP可以给在内网的服务器搭建一个隧道到有公网的服务器,实现内网穿透,这样你的公网服务器就可以达到中转的职责,只需要映射内网服务器的对应端口,就可以使用公网服务器的IP加端口来访问内网的服务。
手里有几台甲骨云的服务器闲置着,正好来搭建一个顺便记录一下方法。
2.准备工作
- 一台处于内网的服务器
- 一台拥有公网IP的VPS(甲骨云amd)*1
3.防火墙配置
甲骨云的服务器我是使用的Ubuntu22.04,因为甲骨云有独特的防火墙设置,所以需要对服务器的防火墙配置开放对应的端口。
参考网上的文章可以使用以下方法开放端口
-
直接删除 iptables 规则
COPYsudo rm -rf /etc/iptables && reboot
-
开放所有端口
COPYsudo iptables -P INPUT ACCEPT sudo iptables -P FORWARD ACCEPT sudo iptables -P OUTPUT ACCEPT sudo iptables -F sudo apt-get purge netfilter-persistent reboot
-
只开放特定端口
COPYsudo iptables -I INPUT -s 0.0.0.0/0 -p tcp --dport 要放行的端口号 -j ACCEPT sudo iptables-save sudo apt-get update sudo apt-get install iptables-persistent -y sudo netfilter-persistent save sudo netfilter-persistent reload
4.安装FRP服务端
使用ssh连接甲骨云的服务器,我们来安装FRP服务端。
这里我们使用Docker-compose的方式安装。
4.1安装docker和docker-compose
#1.安装Docker
wget -qO- get.docker.com | bash
#2.开机自动启动
systemctl enable docker
#3.安装Docker-compose
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
#4.赋予执行权限
sudo chmod +x /usr/local/bin/docker-compose
4.2配置docker-compose.yml
创建一个docker-compose.yml输入以下内容:
version: '3.3'
services:
frps:
restart: always
network_mode: host
volumes:
- './frps.ini:/etc/frp/frps.ini'
container_name: frps
image: snowdreamtech/frps
4.3配置frps.ini
我们需要在当前的目录下面创建一个名为frps.ini的文件
touch frps.ini
输入以下内容:
# frp的服务端端口,可以修改成自己想要的端口
bind_port = 7000
# frp 服务端密码
token = 123456789
# 服务端网页端口,默认为7500
dashboard_port = 7500
# 服务端仪表盘的用户名和密码
dashboard_user = username
dashboard_pwd = password
# 如果想要用 frp 穿透访问本地内网的http和https端口要需要设置以下两个监听端口
vhost_http_port = 7100
vhost_https_port = 7200
配置好后保存退出,然后我们部署一下输入:
docker-compose up -d
部署成功后我们可以访问网页服务
输入公网IP加7000端口即可访问
5.安装FRP客户端
来到本地内网的服务器如果没有安装docker和docker-compose还是先安装他们。
5.1配置客户端docker-compose.yml
version: '3.3'
services:
frpc:
restart: always
network_mode: host
volumes:
- './frpc.ini:/etc/frp/frpc.ini'
container_name: frpc
image: snowdreamtech/frpc
5.2配置frpc.ini
我们需要在当前的目录下面创建一个名为frpc.ini的文件
touch frpc.ini
输入以下内容:
[common]
# server_addr为FRPS服务器IP地址
server_addr = 122.489.432.123
# server_port为服务端监听端口,bind_port
server_port = 7000
# 身份验证
token = 123456789
[emby]
type = tcp
local_ip = 127.0.0.1
#本地服务端口
local_port = 8096
#远程服务器端口
remote_port = 9000
# 是否加密客户端与服务端之间的通信,默认是 false
use_encryption = true
# 是否压缩客户端与服务端之间的通信,默认是 false
use_compression = true
举个例子
比如我们想把本地的emby端口8096映射到公网服务器的9000端口上就可以把remote_port
设置成9000
5.4部署FRP客户端
配置好后保存退出,然后我们部署一下输入:
docker-compose up -d
然后我们就可以从公网的+9000端口来访问内网的8096端口的emby了。
关于更详细的配置你可以参考下面的官方文档和大佬们的教程文档
参考
https://zhuanlan.zhihu.com/p/599123751