蓝易云

Docker 搭建 headscale 异地组网完整教程

4.4K+次阅读
75条评论

共计 6453 个字符,预计需要花费 17 分钟才能阅读完成。

前言

之前写过 Zerotier 搭建私有根服务器及创建虚拟局域网,阿蛮君也是一直在使用自建的 zerotier,但是为什么还要折腾 headscale 呢?最大的原因是 zerotier 创建根服务器只能使用 ip,这对迁移不是非常方便,并且自己也想了解下 headscale,所以折腾了几天总算有了结果。

一、搭建headscale服务端

1.创建相关文件并配置

这里需要手动创建 db.sqlite,这是根服务器的数据库文件。另外,还需要下载官网给的配置文件示例,然后需要修改一部分。

mkdir -p /home/docker/headscale/config && \
mkdir -p /home/docker/headscale/data && \
touch /home/docker/headscale/data/db.sqlite && \
wget https://github.com/juanfont/headscale/raw/v0.22.3/config-example.yaml -O /home/docker/headscale/config/config.yaml

经评论提醒,需要修改下载镜像对应版本号的 config-example.yaml,否则可能配置文件无法对应导致启动报错。

修改相关配置文件,比如配置文件中配置 127.0.0.1 的话,那么就只能本机访问。这里修改为 0.0.0.0 那么就所有的 ip 都能访问。

sed -i 's/127.0.0.1/0.0.0.0/g' /home/docker/headscale/config/config.yaml
# 这将修改以下几个地方,其中server_url还需要另外修改
# 1. server_url: http://0.0.0.0:8080
# 2. listen_addr: 0.0.0.0:8080
# 3. metrics_listen_addr: 0.0.0.0:9090
# 4. grpc_listen_addr: 0.0.0.0:50443

另外因为server_url是对外访问和登录的地址,如果你需要使用域名并开启https,那么照我如下配置。如果你仅仅使用ip,那么这个地址修改为ip+端口的方式即可。

域名填自己的

sed -i 's#http://0.0.0.0:8080#https://headscale.amjun.com#g' /home/docker/headscale/config/config.yaml

修改 dns 配置文件,如果不进行修改,那么登录时选择接受服务器的 dns 地址就会出现域名无法解析的情况。注意,这里的 dns 地址可以有多个,如果有需要自行添加即可。

sed -i 's/1\.1\.1\.1/114.114.114.114/g' /home/docker/headscale/config/config.yaml

客户端可以通过 主机名 + 用户 + 基础域名 访问任意一台终端,所以这里修改下基础域名,根据自己的实际域名进行填写。

域名填自己的

sed -i 's/example.com/amjun.com/' /home/docker/headscale/config/config.yaml

设置客户端随机端口,这里是听见有说不开机随机端口可能出现只能加入一台客户端的情况,为了保险还是选择开启。

sed -i 's/randomize_client_port: false/randomize_client_port: true/' /home/docker/headscale/config/config.yaml

启用内嵌的derp

当然你可以使用官方提供的 derp 服务器,但如果你想搭建自己的 derp 服务器,又不想另外搭建一个 derp 服务器,那么这是有必要的。

注意:使用此 derp 服务器,需要有域名并配置 ssl,否则请参考:Docker 搭建中继服务器 derp - 纯 IP 实现

# /home/docker/headscale/config/config.yaml
derp:
  server:
    # xxx
    enabled: true
    # xxx
    region_id: 999
    # xxx
    region_code: "headscale"
    region_name: "Headscale Embedded DERP"
    # xxx
    stun_listen_addr: "0.0.0.0:3478"

enabled 选项默认为 false,需要设置为 true。

3.启动headscale服务端

docker run -d \
--name headscale \
--restart always \
-v /home/docker/headscale/config:/etc/headscale/ \
-v /home/docker/headscale/data:/var/lib/headscale \
-p 8080:8080 \
-p 9090:9090 \
-p 3478:3478/udp \
--restart always \
headscale/headscale:0.22.3 \
headscale serve

下面是一些相关的命令:

以前是 namespace 的概念,现在似乎改为 user 了。

# 查看用户
docker exec -it headscale headscale users ls
# 创建用户
docker exec -it headscale headscale users create hz
# 生成apikey
docker exec -it headscale headscale apikey create
# 查询apikey
docker exec -it headscale headscale apikey ls

二、搭建web-ui

这一步是搭建 headscale 的 web-ui 界面,这不是必要的,因为阿蛮君更多使用命令,这只是有助于更好的查看相关信息。

docker run -d \
--name headscale-webui \
--restart always \
-v /home/docker/headscale/config:/etc/headscale/:ro \
-v /home/docker/headscale/web-ui/data:/data \
-u root \
-p 5000:5000 \
-e HS_SERVER=https://headscale.amjun.com \
-e DOMAIN_NAME=https://headscale.amjun.com \
-e SCRIPT_NAME=/admin \
-e AUTH_TYPE=Basic \
-e BASIC_AUTH_USER=admin \
-e BASIC_AUTH_PASS=admin \
-e KEY="2uHP6BSVocX+wcWU5mzuXA7JvnZA70UaTadB8L1heOo=" \
--restart always \
ifargle/headscale-webui:latest

其中 /home/docker/headscale/config 为上面服务端的映射目录,这两个目录需要一致。HS_SERVERDOMAIN_NAME 填写自己的域名1。KEY 是用来加密待会需要保存的 apikey 的字符串,使用命令 openssl rand -base64 32 生成。

接下来需要创建 headscale 服务器的 api-key,这里设置一个比较久的过期时间。

三、配置nginx和web-ui

1.配置nginx

如果前面server_url没有配置 ssl 加密,那这一步也不是必要的。

添加如下配置:

server {
    listen       443 ssl;
    listen  [::]:443 ssl;
    server_name  headscale.amjun.com;
    ssl_certificate  /etc/nginx/conf.d/cert/amjun.com.cer;
    ssl_certificate_key /etc/nginx/conf.d/cert/amjun.com.key;

    location ^~/ {
        proxy_pass http://localhost:8080/;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $connection_upgrade;
        proxy_set_header Host $server_name;
        proxy_redirect https:// https://;
        proxy_buffering off;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $http_x_forwarded_proto;
    }

    location ^~/admin/ {
        proxy_pass http://localhost:5000/admin/;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

server {
    listen 80;
    server_name  headscale.amjun.com;
    rewrite ^(.*)$ https://$host:443$1 permanent;
}

保存配置后重启 nginx,如果配置正确,那么通过 https://域名/admin 应该可以访问到 web-ui 界面,输入容器启动时配置的用户名密码即可进入。

Docker 搭建 headscale 异地组网完整教程

2.配置web-ui

上面提示输入 apikey,这个需要 headscale 服务端生成,这里设置一个比较长的时间,根据自己的需要即可。

docker exec -it headscale headscale apikeys create -e 10000d

运行命令后将生成的 key 输入,点击 save 即可,概览页面如下:

Docker 搭建 headscale 异地组网完整教程

四、创建用户和授权密钥

headscale 个人理解是用户就是命名空间,进行网络隔离,所以需要先创建用户。

#  创建用户
docker exec -it headscale headscale users create hz

授权密码的作用是,客户端登陆时不需要再服务端进行确认,阿蛮君总是喜欢使用简单的方式,所以就选择这种方式了。

# reusable 参数代表可以重复使用,不加的话密钥只能用来一个客户端加入
docker exec -it headscale headscale preauthkeys create -e 10000d --reusable -u hz
# 查看密钥 
docker exec -it headscale headscale preauthkeys list -u hz

这里记得记录好授权密钥,下面将会用到。

五、客户端安装

headscale 相当于是重新实现了 tailscale 的服务端,客户端基本还是用的 tailscale。

tailscale 客户端下载地址:https://tailscale.com/download/

1. windows

1.1 安装客户端

下载 windows 客户端并进行安装。

1.2 安装注册表

访问 https://headscale.amjun.com/windows,可以看见配置的教程。

提示需要修改注册表,这里可以直接 curl https://headscale.amjun.com/windows/tailscale.reg 下载文件后,双击运行文件进行安装即可。

1.3 登录

在 tailscale 的安装目录下使用 cmd 打开,输入命令:

tailscale login --login-server https://headscale.amjun.com --authkey b6a9b4f4e9c3a7c7e7b9b1a3a6b9e6b7a5e7c2a1e3a0a4a1 --accept-dns=false --accept-routes

这里的 authkey 是第四步生成的,然后在服务器使用命令查看。

docker exec -it headscale headscale nodes ls

2. linux

2.1 脚本安装

curl -fsSL https://tailscale.com/install.sh | sh && \
tailscale login --login-server https://headscale.amjun.com --authkey b6a9b4f4e9c3a7c7e7b9b1a3a6b9e6b7a5e7c2a1e3a0a4a1 --accept-dns=false --accept-routes

这里仅仅安装方式不同,登录的命令完全一样。

2.2 docker安装

docker run -d \
--name=tailscaled \
-v /home/docker/tailscale/:/var/lib \
-v /dev/net/tun:/dev/net/tun \
-e TS_STATE_DIR=/var/lib/state/ \
--network=host \
--restart always \
--privileged tailscale/tailscale:v1.44.0 \
tailscaled --tun=tailscale0 -no-logs-no-support=true

这里需要将 TS_STATE_DIR 指定的文件夹持久化,否则删除容器再新建后,在服务端能看见重复的设备。并且需要指定 --tun=tailscale0,不然似乎不能在宿主机创建网卡。

然后使用如下命令进行登录。

docker exec -it tailscaled tailscale login --login-server https://headscale.amjun.com --accept-dns=false --accept-routes=false --authkey b6a9b4f4e9c3a7c7e7b9b1a3a6b9e6b7a5e7c2a1e3a0a4a1 --advertise-routes=172.21.9.0/24,172.30.1.0/24,172.26.1.0/24,172.20.2.0/23

根据自己网络情况设置 --advertise-routes,我这是需要通过这台内网机器访问公司其他网络。

如果出现如下错误:

running [/sbin/ip6tables -t filter -N ts-input --wait]: exit status 3: modprobe: can't change directory to '/lib/modules': No such file or directory
ip6tables v1.8.8 (legacy): can't initialize ip6tables table `filter': Table does not exist (do you need to insmod?)
Perhaps ip6tables or your kernel needs to be upgraded

执行以下命令:

# 防止探测ip6table
sudo modprobe ip6table_filter

3. 安卓

3.1 安装并配置

目前官方暂不可以自定义登录链接,需要下载可以自定义登录链接的安卓客户端,阿蛮君这里提供了一份可以使用的客户端,链接放在后面。

安装后,点击右上角三个设置自定义登录地址:

Docker 搭建 headscale 异地组网完整教程

点击保存并重启,再点击 sign in,将看见如下内容。

Docker 搭建 headscale 异地组网完整教程

3.2 服务端注册

根据提示在服务端运行命令:

docker exec -it headscale headscale nodes register --user hz --key nodekey:xxxx

注意这里的 USERNAME 需要修改为自己刚刚创建的用户名。

下载地址

tailscale安卓客户端:https://pan.baidu.com/s/1VPkD9mGRexCndLJWimKNtQ?pwd=akak

提醒:本文发布于514天前,文中所关联的信息可能已发生改变,请知悉!

AD:【腾讯云服务器大降价】2核4G 222元/3年 1核2G 38元/年
正文完
 0
阿蛮君
版权声明:本站原创文章,由 阿蛮君 于2023-06-26发表,共计6453字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(75条评论)
jaylcp 评论达人 LV.1
2023-09-18 17:36:20 回复

写的真详细.谢谢博主

 Windows  Chrome  美国加利福尼亚
sdsmb 评论达人 LV.1
2023-10-07 11:35:59 回复

请问这个是什么原因呢:
https://github.com/iFargle/headscale-webui/issues/119

 Windows  Edge  中国湖南省长沙市电信
    阿蛮君 博主
    2023-10-07 12:04:54 回复

    @sdsmb 证书检验错误,换个正规的证书试试

     Android  Chrome
      sdsmb 评论达人 LV.1
      2023-10-07 16:00:10 回复

      @阿蛮君 现在可以正常登录webui了,但是不管是windows还是安卓端,都没有反应,windows运行命令就停在那了,右下角弹出一个提示:
      Tailscale Authentication Needed
      Click the Tailscale icon to log in.

      点这个通知或者tailscale的图标均没有反应。改开的端口应该都开了,这个是为什么呢?

       Windows  Edge  中国湖南省长沙市电信
        阿蛮君 博主
        2023-10-07 16:28:58 回复

        @sdsmb 这个我这边前两天下载了最新的tailscale都没问题,猜测是你搭建哪里有问题

         Windows  Edge
          sdsmb 评论达人 LV.1
          2023-10-07 17:15:14 回复

          @阿蛮君 映射后的端口需要包含在域名中吗?包括服务端的配置文件中,我映射的不是标准的80或者443 都是自定义的端口(比如:4050或者4051这样的)

           Windows  Edge  中国湖南省长沙市电信
          阿蛮君 博主
          2023-10-07 17:22:03 回复

          @sdsmb 如果不是标准端口,任何地方都要进行指定端口

           Windows  Edge
          sdsmb 评论达人 LV.1
          2023-10-07 19:52:25 回复

          @阿蛮君 再次请教一下:
          windows运行命令有什么现象吗,是会自动打开浏览器登录 还是说点任务栏图标会打开浏览器登录,我现在就是卡在这个地方,没有任何响应,点图标也没有反应。

           Windows  Edge  中国湖南省长沙市电信
          阿蛮君 博主
          2023-10-07 19:56:24 回复

          @sdsmb 不需要打开浏览器的,如果使用授权秘钥,运行后headscale-ui就可以看见设备了

           Windows  Edge
          sdsmb 评论达人 LV.1
          2023-10-07 20:09:18 回复

          @阿蛮君 8080 9090 3478 这些端口都要在路由器上开放外网端口映射吗

           Windows  Edge  中国湖南省长沙市电信
          阿蛮君 博主
          2023-10-07 21:03:57 回复

          @sdsmb 不需要用到自带的derp是不需要3478的,只需要http的话8080应该就够了

           Android  Chrome
          sdsmb 评论达人 LV.1
          2023-10-08 09:25:53 回复

          @阿蛮君 太奇怪了,我重新安装部署 还是卡在那个cmd那里,安卓的话改完server url 再sign in 就一直转圈圈。这到底是哪个地方不对。。。绷不住了。。。

           Windows  Edge  中国湖南省长沙市电信
          阿蛮君 博主
          2023-10-08 09:30:03 回复

          @sdsmb 不知道是不是你配置文件哪里没搞对,有些情况需要看日志

           Android  Chrome
          sdsmb 评论达人 LV.1
          2023-10-08 10:49:52 回复

          @阿蛮君 curl https://xxx.yyy.com:9090/metrics
          curl: (7) Failed connect to xxx.yyy.com:9090; 拒绝连接
          这个正常吗?

           Windows  Edge  中国湖南省长沙市电信
          阿蛮君 博主
          2023-10-08 12:58:53 回复

          @sdsmb 不正常,而且9090是http端口吧

           Windows  Edge
          sdsmb 评论达人 LV.1
          2023-10-08 21:51:31 回复

          @阿蛮君 我查了下客户端的错误日志:
          error: fetch control key: Get "https://xxx.yyy.com:4050/key?v=74": http: server gave HTTP response to HTTPS client
          这个要怎么解决
          我的场景:
          docker 容器是在一台虚拟的Linux上,这个虚拟平台通过直通网卡获得路由器的地址,路由器是电信分配的动态公网(假公网地址),域名通过ddns解析脚本和阿里云的apikey自动定时解析。

          docker compose配置如下
          headscale的:
          version: '3.6'
          services:
          headscale:
          container_name: headscale
          restart: always
          volumes:
          - '/dockermnt/headscale/config:/etc/headscale/'
          - '/dockermnt/headscale/data:/var/lib/headscale'
          ports:
          - '4050:8080'
          - '9090:9090'
          - '3478:3478/udp'
          command: 'headscale serve'
          networks:
          headscale:
          ipv4_address: 172.32.0.11
          image: 'headscale/headscale:latest'
          # image: 'headscale/headscale:0.22.3'
          cap_add:
          - NET_ADMIN
          - SYS_MODULE
          sysctls:
          - net.ipv4.ip_forward=1
          networks:
          headscale:
          external: true

          headscale-webui的:

          version: '3.3'
          services:
          headscale-webui:
          container_name: headscale-webui
          restart: always
          volumes:
          - '/dockermnt/headscale/config:/etc/headscale/:ro'
          - '/dockermnt/headscale/web-ui/data:/data:rw'
          user: root
          networks:
          headscale:
          ipv4_address: 172.32.0.22
          ports:
          - '5000:5000'
          environment:
          - TZ=Asia/Shanghai
          - 'HS_SERVER=http://172.32.0.11:8080'
          - 'DOMAIN_NAME=https://xxx.yyy.com'
          - SCRIPT_NAME=/admin
          - AUTH_TYPE=Basic
          - BASIC_AUTH_USER=xxx
          - BASIC_AUTH_PASS=yyy
          - KEY=zzz=
          image: 'ifargle/headscale-webui:latest'
          networks:
          headscale:
          external: true

           Windows  Edge  中国湖南省长沙市电信
          阿蛮君 博主
          2023-10-08 22:30:15 回复

          @sdsmb 简单看了看,你的请求应该是发http请求,而不是https

           Windows  Edge
          sdsmb 评论达人 LV.1
          2023-10-09 09:21:55 回复

          @阿蛮君 好奇怪,我http就可以了,怎么才能用https呢 这个是我nginx的配置:

          server {
          listen 4050 ssl;
          ssl_certificate /etc/nginx/ssl/*.xxx.yyy.cer;
          ssl_certificate_key /etc/nginx/ssl/*.xxx.yyy.key;
          server_name xxx.yyy;
          ssl_session_cache shared:SSL:1m;
          ssl_session_timeout 10m;
          ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
          ssl_prefer_server_ciphers on;

          client_max_body_size 10M;
          location / {
          proxy_pass http://10.0.0.222:4050;
          proxy_redirect https:// https://;
          proxy_set_header X-Real-IP $remote_addr;
          proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
          proxy_set_header Upgrade $http_upgrade;
          proxy_set_header Connection $connection_upgrade;
          proxy_http_version 1.1;
          proxy_set_header Host $server_name;
          proxy_buffering off;
          proxy_set_header X-Forwarded-Proto $http_x_forwarded_proto;
          }

          }

           Windows  Edge  中国湖南省长沙市电信
          阿蛮君 博主
          2023-10-09 10:40:12 回复

          @sdsmb 这个不需要配https,8080配https就行了

           Windows  Edge
          sdsmb 评论达人 LV.1
          2023-10-09 10:39:34 回复

          @阿蛮君 解决了,nginx配置的问题.终于好使了

           Windows  Edge  中国湖南省长沙市电信
ASHISK 评论达人 LV.1
2023-10-07 20:58:31 回复

大佬,问下客户端连接提示too many non-flag arguments是怎么回事

 Android  Chrome  中国江西省南昌市联通
    阿蛮君 博主
    2023-10-07 21:00:52 回复

    @ASHISK 应该是命令有误,检查一下命令,看不出来可以问下chatgpt

     Android  Chrome
      ASHISK 评论达人 LV.1
      2023-10-07 21:06:08 回复

      @阿蛮君 我就把https://后面的域名和authkey换成了自己的,就报这玩意

       Android  Chrome  中国江西省南昌市联通
      ASHISK 评论达人 LV.1
      2023-10-07 21:11:12 回复

      @阿蛮君 按GPT修改之后不报这个了,但是什么都不提示了😨,也没有结束命令,这是哪里的问题

       Android  Chrome  中国江西省南昌市联通
        阿蛮君 博主
        2023-10-07 21:13:51 回复

        @ASHISK 可能设备加入了,上ui看看有没有加进去

         Android  Chrome
          ASHISK 评论达人 LV.1
          2023-10-07 21:16:31 回复

          @阿蛮君 我没有配置webui,用docker exec -it headscale headscale nodes ls查看的没有显示任何用户

           Android  Chrome  中国江西省南昌市联通
          阿蛮君 博主
          2023-10-07 21:29:09 回复

          @ASHISK 不好意思刚刚没有看见这个回复,按照你的说啊有可能是某些配置没修改的问题

           Windows  Edge
          ASHISK 评论达人 LV.1
          2023-10-07 21:19:17 回复

          @阿蛮君 会和我服务器只能不对称端口转发,有些东西可能需要改有关吗🤔

           Android  Chrome  中国江西省南昌市联通
          阿蛮君 博主
          2023-10-07 21:26:30 回复

          @ASHISK docker exec -it headscale headscale nodes ls 执行这个看看

           Windows  Edge
          ASHISK 评论达人 LV.1
          2023-10-07 21:30:06 回复

          @阿蛮君 也是空的,没有用户,我明明创建了两个

           Android  Chrome  中国江西省南昌市联通
          阿蛮君 博主
          2023-10-07 21:34:40 回复

          @ASHISK 这个是查看节点的,用户是user,应该是配置哪里有问题

           Windows  Edge
LiuLi 评论达人 LV.1
2023-10-25 18:10:13 回复

非常详细,谢谢博主

 Windows  Edge  泰国曼谷曼谷AIS
unidra 评论达人 LV.1
2023-11-27 11:27:50 回复

大佬,之前按照你的教程来,每次都是正常的,但是最近买了个阿里云的服务器,部署的时候获取不到private.key的路径。我换了个很多个版本,也重装过docker,依然还是这个错误,就算我把配置文件下载下来,丝毫不改也是一样的错误,而且命令我都是直接复制你的,映射的参数也不应该会有问题,搞了好久了,实在是解决不了,也没有别人跟我遇到同样的问题,只能来求求大佬了。:cry: :cry:
2023-11-27T03:12:56Z INF No private key file at path, creating... path=
2023-11-27T03:12:56Z FTL go/src/headscale/cmd/headscale/cli/server.go:21 > Error initializing error="failed to read or create private key: failed to save private key to disk: open : no such file or directory"

 Macintosh  Edge  中国四川省成都市电信
    阿蛮君 博主
    2023-11-27 13:06:06 回复

    @unidra 把映射目录干掉试试,看看启动是否报错。

     Windows  Edge
      unidra 评论达人 LV.1
      2023-11-27 15:14:41 回复

      @阿蛮君 不管是删掉目录映射还是把路径改为./noise_private.key都是同样的错误,或者我在映射目录下把文件创建了也是同样的问题。只能暂时放弃了,后面改用直接运行在主机上。

       Macintosh  Edge  中国四川省成都市电信
    Cp0204 评论达人 LV.1
    2023-12-14 10:47:50 回复

    @unidra 这个坑是config-example.yaml和docker镜像版本不匹配,比如你用的0.22版本镜像,就在github下找0.22标签的config-example.yaml

     Windows  Chrome  中国广东省东莞市移动
      阿蛮君 博主
      2023-12-14 10:49:54 回复

      @Cp0204 原来如此,几个月没弄我都不清楚了,感谢大佬解惑

       Android  Chrome
        Cp0204 评论达人 LV.1
        2023-12-14 11:26:55 回复

        @阿蛮君 因为github的main分支总是随开发放的最新版,而docker镜像按正式版来发布,所以写文章时没问题,现在按着教程操作一定会踩坑,而且还很难找到原因,我昨晚都研究了好久。建议是教程中拉镜像命令和wget yaml都固定同一个版本。

         Android  Chrome  中国广东省东莞市移动
        Cp0204 评论达人 LV.1
        2023-12-14 11:28:42 回复

        @阿蛮君 另外,不知道为什么在我打评论的时候,本博客会自动跳到下一篇文章😂 上一段文字就打了三次

         Android  Chrome  中国广东省东莞市移动
          阿蛮君 博主
          2023-12-14 12:33:54 回复

          @Cp0204 不知道是不是因为我加了打字特效的缘故,我屁股没怎么遇到 :oops:

           Android  Chrome
moon 评论达人 LV.1
2023-11-27 19:03:48 回复

感谢博主分享

 Windows  Edge  中国河南省信阳市联通
kuji 评论达人 LV.1
2023-12-01 13:55:12 回复

想要Android的文件

 Windows  Chrome  中国山东省济南市联通
kuji 评论达人 LV.1
2023-12-01 14:07:37 回复

麻烦问一下,服务端搭建完成之后,电脑端没有问题,手机端设置好IP地址后无法跳转到浏览器生成一串字符

 Windows  Chrome  中国山东省济南市联通
    阿蛮君 博主
    2023-12-01 16:12:35 回复

    @kuji 一般不会,如果不行就去官方下载最新版就好了

     Windows  Edge
waylon 评论达人 LV.1
2024-02-12 16:03:42 回复

配置成功

 Macintosh  Edge  中国广东省深圳市电信
lfzark 评论达人 LV.1
2024-03-12 15:00:10 回复

感谢 已经配置好了

 Windows  Chrome  中国香港电讯盈科
Copyright © 2022-2024 阿蛮君博客 湘ICP备2023001393号
本网站由 亿信互联 提供云计算服务 | 蓝易云CDN 提供安全防护和加速服务
Powered by Wordpress  Theme by Puock