自建内网穿透服务器

作者1128小时前其他19

基于Docker的FRP内网穿透部署

服务器搭建(FRPS)

创建配置文件

# 创建存放目录
sudo mkdir /etc/frp
# 创建frps.ini文件
nano /etc/frp/frps.ini

frps.ini内容如下:

[common]
# 监听端口
bind_port = 7000
# 面板端口
dashboard_port = 7500
# 登录面板账号设置
dashboard_user = admin
dashboard_pwd = spoto1234
# 设置http及https协议下代理端口(非重要)
vhost_http_port = 7080
vhost_https_port = 7081


# 身份验证
token = 12345678
#服务器镜像:snowdreamtech/frps
#重启:always
#网络模式:host
#文件映射:/etc/frp/frps.ini:/etc/frp/frps.ini

docker run --restart=always --network host -d -v /etc/frp/frps.ini:/etc/frp/frps.ini --name frps snowdreamtech/frps

中转客户端配置(FRPC)

服务器镜像:snowdreamtech/frpc
重启:always
网络模式:host
文件映射:/路径/frp/:/etc/frp/

配置文件示例:

[common]
# server_addr为FRPS服务器IP地址
server_addr = x.x.x.x
# server_port为服务端监听端口,bind_port
server_port = 7000
# 身份验证
token = 12345678

[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 2288

# [ssh] 为服务名称,下方此处设置为,访问frp服务段的2288端口时,等同于通过中转服务器访问127.0.0.1的22端口。
# type 为连接的类型,此处为tcp
# local_ip 为中转客户端实际访问的IP 
# local_port 为目标端口
# remote_port 为远程端口

[ssh]
type = tcp
local_ip = 192.168.1.229
local_port = 80
remote_port = 18022

[unRAID web]
type = tcp
local_ip = 192.168.1.229
local_port = 80
remote_port = 18088

[Truenas web]
type = tcp
local_ip = 192.168.1.235
local_port = 80
remote_port = 18188

[speedtest]
type = tcp
local_ip = 192.168.1.229
local_port = 6580
remote_port = 18190


[webdav]
type = tcp
local_ip = 192.168.1.235
local_port = 18080
remote_port = 18189

[RDP PC1]
type = tcp
local_ip = 192.168.1.235
local_port = 3389
remote_port = 18389
  • 如果监听服务可以有IP限制的设置,需要允许的访问IP为中转内网设备的内网IP;

  • FRP由于端口会暴露在互联网上,虽然说使用方便但安全性较差;

基于Zerotier根服务器的内网穿透部署

创建(伪)根服务器 | 项目地址:https://github.com/Jonnyan404/zerotier-planet

docker run --restart=on-failure:3 -d --name ztncui -e HTTP_PORT=4000 -e HTTP_ALL_INTERFACES=yes -e ZTNCUI_PASSWD=mrdoc.fun -p 4000:4000 keynetworks/ztncui

创建 moon 服务器 | 项目地址:https://github.com/jonnyan404/docker-zerotier-moon

#创建容器
docker run --name zerotier-moon -d -p 9993:9993 -p 9993:9993/udp -v /etc/ztconf/:/var/lib/zerotier-one jonnyan404/zerotier-moon -4 [公网ipx.x.x.x]

#查看moon ID
docker logs zerotier-moon

群晖 DSM 7.x 安装Zerotier客户端

登录SSH并创建虚拟网络设备TUN

#获取权限
sudo -i

#创建“创建虚拟网络设备TUN”的脚本,并设为开机自动运行
echo -e '#!/bin/sh -e \ninsmod /lib/modules/tun.ko' > /usr/local/etc/rc.d/tun.sh

#给予脚本运行权限
chmod a+x /usr/local/etc/rc.d/tun.sh

#运行脚本创建TUN
/usr/local/etc/rc.d/tun.sh

#确认TUN是否创建成功
ls /dev/net/tun

创建存放配置文件的目录

mkdir /var/lib/zerotier-one

创建Zerotier应用容器:

docker run -d           \
  --name zt             \
  --restart=always      \
  --device=/dev/net/tun \
  --net=host            \
  --cap-add=NET_ADMIN   \
  --cap-add=SYS_ADMIN   \
  -v /var/lib/zerotier-one:/var/lib/zerotier-one zerotier/zerotier-synology:latest

常用命令:

#查看zerotier状态
docker exec -it zt zerotier-cli status

#加入网络
docker exec -it zt zerotier-cli join [xxxxxxxxxxxx]
#加入moon服务器
docker exec zt zerotier-cli orbit [moon_ID] [moon_ID]
#确认是否加入
docker exec zt zerotier-cli listpeers

Windows 客户端加入moon服务器

cd C:\ProgramData\ZeroTier\One
zerotier-cli orbit [moon_id] [moon_id]


相关文章

从用户分层RFM模型延伸间接人员的RFM

在商业中,用户分层RFM模型(通过最近一次消费时间(Recency)、消费频率(Frequency)、消费金额(Monetary)对客户分类)确实能有效指导资源分配和策略制定。而对于间接人员(如行政、...

openwrt软路由(x86)做打印服务器,用docker安装cups/airprint

openwrt软路由(x86)做打印服务器,用docker安装cups/airprint

记录一下,免得下次重装又不会,有需要的参考一下。在新版的软路由系统里已经集成了通过 TCP/IP 共享 USB 打印服务,但对于链接与实用性不太好,IStore里的cups又没几个驱动,那我们就可以用...

QNAP威联通NAS怎么通过HBS3设置定时备份计划至外部存储?

QNAP威联通NAS怎么通过HBS3设置定时备份计划至外部存储?

给大家介绍一个威联通nas中非常好用的备份工具,HBS3(也叫做hybrid backup sync),可以通过它,定期的将NAS中的数据备份至外部存储,包括NAS本机的其他存储文件夹、外接硬盘或者公...

zerotier搭建虚拟局域网,自建planet

zerotier搭建虚拟局域网,自建planet

https://github.com/xubiaolin/docker-zerotier-planet 项目地址基于该开源项目 自建planet节点,更快速,更安全本教程依据docker-z...

Ubuntu 安装 Nextcloud 客户端

方法一:通过添加 PPA 源安装sudo apt update && sudo apt upgrade  #添加 stable 源 sudo add-apt-repositor...

热点主机是 Windows,连接的电脑是 Ubuntu,两者互访

热点主机是 Windows,连接的电脑是 Ubuntu,两者互访

如果连接的电脑是 Ubuntu(或其他 Linux 系统),而热点主机是 Windows,要让两者互访(文件共享、Ping 等),需要额外调整 Ubuntu 的网络配置和共享设置。以下是具体步骤确保...