赞
踩
# win10使用:也可通过此命令查看ip网络层级结构
>>> tracert 8.8.8.8
# centos使用:也可通过此命令查看ip网络层级结构
>>> traceroute 8.8.8.8
# 此处为当前PC的网关
1 gateway (192.168.1.1) 0.291 ms * *
# 还是内网:要是非路由器ip,则为服务提供商给套的内网ip
# 若出家里路由器ip后第一个还是内网ip,则只能用内网穿透进行外网访问
2 10.200.96.1 (10.200.96.1) 12.666 ms 12.724 ms 12.684 ms
# 同上
3 10.1.2.13 (10.1.2.13) 9.560 ms 9.519 ms 9.579 ms
4 * * *
# 同上
5 10.1.1.121 (10.1.1.121) 9.396 ms 9.344 ms 9.439 ms
# 进入Internet,此为公网ip进行的转发
6 211.139.0.57 (211.139.0.57) 29.251 ms 4.201 ms 14.723 ms
.......
# 到达谷歌DNS服务器
17 dns.google (8.8.8.8) 40.245 ms 42.933 ms 46.931 ms
# 版本页面
https://github.com/fatedier/frp/releases
# 路由命名规则:download/版本号/frp_版本号_linux_amd64.tar.gz
wget https://github.com/fatedier/frp/releases/download/v0.39.1/frp_0.39.1_linux_amd64.tar.gz
[common]
# 公网服务器的通信端口(与内网PC间)
bind_port = 7001
# 通信密码,最好别用常用密码
token = 1234567890
[Unit]
Description=Frp Server Service
After=network.target
[Service]
Type=simple
# 只改下面这一句,注意frps和frps.ini位置
ExecStart=nohup /root/bin/frp/frps -c /root/bin/frp/frps.ini
[Install]
WantedBy=multi-user.target
systemctl daemon-reload # 重新加载服务配置文件
systemctl start frps.service # 启动服务
systemctl enable frps.service # 设置开机启动
systemctl status frps.service # 查看服务启动情况
systemctl stop frps.service # 关闭服务
[common]
# 公网IP地址
server_addr = 12.23.45.67
# 公网端口,需与frps.ini对应
server_port = 7001
# 通信时携带的口令
token = 1234567890
# ssh通信设置:常用于在外网以公网服务器为跳板ssh到内网服务器
# 功能:公网6010端口接收到的请求会转发到内网PC的22端口
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
# 公网服务器端口:后台(如宝塔)和服务商(如阿里云和腾讯云都有线上防火墙阻挡端口)
remote_port = 6010
# 后台api端口:本地http(80端口)服务和公网服务器6020端口做映射
[api]
type = tcp
local_ip = 127.0.0.1
local_port = 80
# 公网服务器端口:后台(如宝塔)和服务商(如阿里云和腾讯云都有线上防火墙阻挡端口)
remote_port = 6020
# 宝塔面板端口映射
[bt_pannel]
type = tcp
local_ip = 127.0.0.1
local_port = 8888
# 公网服务器端口:后台(如宝塔)和服务商(如阿里云和腾讯云都有线上防火墙阻挡端口)
remote_port = 10004
[Unit]
Description=Frp Client Service
After=network.target
[Service]
Type=simple
# 只改下面这一句,关注frpc和frpc.ini位置
ExecStart=nohup /root/bin/frp/frpc -c /root/bin/frp/frpc.ini
[Install]
WantedBy=multi-user.target
systemctl daemon-reload # 重新加载服务配置文件
systemctl start frpc.service # 启动服务
systemctl enable frpc.service # 设置开机启动
systemctl status frpc.service # 查看服务启动情况
systemctl stop frpc.service # 关闭服务,每次有新增端口都要重新启动下服务
至此,如果公网ip为12.34.56.78,内网ip为192.168.1.123,公网ip对应的域名为http://doubi.com
则:
端口开放:三个访问对应端口防火墙必须放行,腾讯云、阿里云服务器均存在线上防火墙,宝塔面板也有防火墙
命令:uname -m
,CentOs系统
列表
内网centos服务器输入命令
# 切换到bin目录
cd /usr/local/bin
# 下载软件:这里有时候内网不能下,我用云端服务器可以直接下载,
# 然后可以拷贝到其他服务器上用
wget -O frpc <下载地址>
# 设置权限
chmod 755 frpc
# 检测版本
frpc -v
server_addr:端口号
(端口号详3.3节<unit名称>及访问),即访问本地服务器的http://ip
效果http://自有域名:端口号
(端口号详3.3节<unit名称>及访问),即会跳转到内网服务器的http://ip
# 安装docker
yum install docker -y
# 启动|关闭|重启docker服务
systemctl start|stop|restart docker
# 开机启动docker
systemctl enable docker
# 查看docker当前状态
systemctl status docker
# 测试docker是否正确安装及功能完备
docker run hello-world
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
docker run --name zerotier-moon -d --restart always -p 9993:9993/udp jonnyan404/zerotier-moon -4 [公网服务器ip]
# 查看启动情况:注意【moon id】,后面客户端要用
docker logs zerotier-moon
访问 http://公网ip:4000
,初始用户名:admin
,初始密码:mrdoc.fun
密码:改密码后一定记住密码,暂时不知道咋能重设密码,若忘记了只能删除根服务器的docker容器重做一个
登录设置根服务器
静态IP:单击IP可设置IP
cd C:\ProgramData\ZeroTier\One
# 连接moon服务器: 根服务器上运行docker logs zerotier-moon 获取moon_ID
# 注意mac需要管理员权限 sudo
zerotier-cli orbit [moon_ID] [moon_ID]
# 获取管理员权限
sudo -i
# 再输一遍管理员密码
> Password:
# 脚本:创建虚拟网络设备TUN,并设为开机启动
echo -e '#!/bin/sh -e \ninsmod /lib/modules/tun.ko' > /usr/local/etc/rc.d/tun.sh
# 给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
# 启动docker容器:网络是host模式,有挂载-v,重装后数据不会丢失
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
# 连接moon服务器: 根服务器上运行docker logs zerotier-moon 获取moon_ID
docker exec zt zerotier-cli orbit [moon_ID] [moon_ID]
# 进入容器查看节点状态
docker exec -it zt zerotier-cli status
# 进入容器加入虚拟局域网
docker exec -it zt zerotier-cli join 虚拟局域网id
# 升级容器:前提为停止并删除容器,拉取最新镜像,重新创建容器
docker pull zerotier/zerotier-synology:latest
设备互访:任何加入此虚拟局域网中的主机,均可直接通过根服务器的ip列表,直接访问注册的机器
# 下载并运行官方脚本
curl -s https://install.zerotier.com | sudo bash
# 设置服务开机启动
sudo systemctl enable zerotier-one.service
# 查看服务状态
zerotier-cli status
# 加入网络:注意去根服务器授权
sudo zerotier-cli join 虚拟网络id
# 连接moon服务器: 根服务器 docker logs zerotier-moon获取moon_ID
zerotier-cli orbit [moon_ID] [moon_ID]
# 离开网络
zerotier-cli leave 虚拟网络id
# 查看所有的网络
zerotier-cli listnetworks
命令缺失:如果是精简版centos7的docker镜像,需要安装命令,详见传送门
docker安装centos7默认IP:172.17.0.*
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。