frp是一个好用的内网穿透项目:https://github.com/fatedier/frp
如果不使用docker安装frp,可以参考官方教程:https://gofrp.org/zh-cn/docs/setup/
如果用docker安装,可以方便管理,不用使用那些自启动脚本之类的
使用这个docker镜像来安装:https://hub.docker.com/r/snowdreamtech/frps
下面均采用linux和可以访问https://hub.docker.com/的服务器来安装
安装docker
wget -qO- get.docker.com | bash
docker -v #查看docker版本
systemctl enable docker # 设置开机自动启动
修改Docker配置(可选)
以下配置会增加一段自定义内网 IPv6 地址,开启容器的 IPv6 功能,以及限制日志文件大小,防止 Docker 日志塞满硬盘:
cat > /etc/docker/daemon.json <<EOF
{
"log-driver": "json-file",
"log-opts": {
"max-size": "20m",
"max-file": "3"
},
"ipv6": true,
"fixed-cidr-v6": "fd00:dead:beef:c0::/80",
"experimental":true,
"ip6tables":true
}
EOF
然后重启 Docker 服务:
systemctl restart docker
安装Docker-compose(可选)
Compose 是用于定义和运行多容器 Docker 应用程序的工具
sudo curl -L "https://github.com/docker/compose/releases/download/2.27.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose --version #查看docker-compose版本
cd /root/data/docker_data/frps
docker-compose down
cp -r /root/data/docker_data/fprs /root/data/docker_data/frps.archive # 其实就是备份一下frps.ini这个文件
docker-compose pull
docker-compose up -d
docker image prune # prune 命令用来删除不再使用的 docker 对象。删除所有未被 tag 标记和未被容器使用的镜像
{/collapse-item}
安装frps
sudo -i
mkdir -p /root/data/docker_data/frps
cd /root/data/docker_data/frps
touch frps.toml
vim frps.toml
#输入下面的配置,仅参考
bindPort = 1443 #服务端监听端口
auth.method = "token" #服务端连接身份认证,默认token
auth.token = "dsafja3fvz25ernca" #服务端token密码
transport.tls.force = false #是否只接受启用了TLS的客户端连接
#frp服务仪表板配置
#dashboard端口,启动成功后可通过浏览器访问如http://ip:9007
webServer.port = 9007
webServer.addr = "0.0.0.0"
webServer.user = "admin1"
webServer.password = "youareadmin1"
#拉取frps镜像
docker pull snowdreamtech/frps
启动frps
docker run --restart=always --network host -d -v ./frps.toml:/etc/frp/frps.toml --name frps snowdreamtech/frps
{/collapse-item}
sudo -i
mkdir -p /root/data/docker_data/frps
cd /root/data/docker_data/frps
vim docker-compose.yml
#输入下面的命令
version: '3.8' #此数字需要根据安装的docker-compose版本而定
services:
frps:
restart: always
network_mode: host
volumes:
- './frps.toml:/etc/frp/frps.toml'
container_name: frps
image: snowdreamtech/frps
touch frps.toml
vim frps.toml
#输入下面的配置,仅参考
bindPort = 1443 #服务端监听端口
auth.method = "token" #服务端连接身份认证,默认token
auth.token = "dsavmlr949rnca" #服务端token密码
transport.tls.force = false #是否只接受启用了TLS的客户端连接
#frp服务仪表板配置
#dashboard端口,启动成功后可通过浏览器访问如http://ip:9007
webServer.port = 9007
webServer.addr = "0.0.0.0"
webServer.user = "admin1"
webServer.password = "youareadmin1"
#启动frps
docker-compose up -d
#docker ps 会显示正在运行的docker容器,frps会显示下面类似的
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a9a1aa562935 snowdreamtech/frps "/usr/bin/frps -c /e…" 2 hours ago Up 2 hours frps
需要根据自己的服务器放行相应的端口
#以ufw为例
sudo ufw allow 9007/tcp
sudo ufw allow 1443/tcp
sudo ufw reload
安装frpc
frpc根据情况在nas或其他设备上安装(依然选择snowdreamtech/frpc),下面是一份客户端配置参考,文件名frpc.toml
# frpc.toml
transport.tls.enable = true # 从 v0.50.0版本开始,transport.tls.enable的默认值为 true
serverAddr = "xxx.xxx.xxx.xxx" #frps所在的设备IP
serverPort = 1443 # 公网服务端通信端口
auth.token = "dsavmlr949rnca" # 令牌,与公网服务端保持一致
[[proxies]]
name = "web"
type = "tcp"
localIP = "127.0.0.1" # 需要暴露的服务的IP
localPort = 8989 # 将本地9000端口的服务暴露在公网的6060端口
remotePort = 8989 # 暴露服务的公网入口,依然需要在服务端放行这个端口
参考:
1.https://blog.laoda.de/archives/frp-with-nginx-proxy-manager?cid=4423#73-%E5%AE%89%E8%A3%85nginxproxymanager
2.https://gofrp.org/zh-cn/docs/setup
3.https://hub.docker.com/r/snowdreamtech/frps
如果你想在Docker中安装FRP,这是一个非常简单的过程,可以大大提高你的网络性能和灵活性。有关详细说明和相关信息,请务必查看Arstiapa Piarata
。他们的指南对初学者和高级用户都非常有帮助!
让我们看看 SoftwaresDrive.com 的这篇文章,您可能会在其中发现一些有价值的知识和知识。 Autodesk PowerShape Ultimate SoftwaresDrive 文章快速浏览。