使用自定义端口需要自己有域名 并且申请了SSL证书,域名没有进行备案的化 云服务器80会被劫持 443端口会被封禁!!!这就是为啥百度云 腾讯云 和阿里云 国内云服务器厂商无法安装官方脚本搭建成功的原因 官方脚本默认在443启动会自己申请证书 !!!!!!!

如果自己生成证书,需要改生成证书之后的名字为域名!!!!!!否则不认!

所以 在本教程之前请准备域名和证书 端口就可以使用任意端口(443也可以)

安装golang环境

tailscale项目使用的golang环境比较新,部署自定义derper服务要求golang版本1.16以上。推荐尽可能安装最新的版本,本文安装目前最新版本

golang官网在国外,直接从官网下载会比较慢,可以选择国内镜像站下载

wget https://golang.google.cn/dl/go1.19.linux-amd64.tar.gz
tar -C /usr/local -xzf go1.19.linux-amd64.tar.gz 

编辑 /etc/profile文件,添加如下内容。编辑文件可以使用vim或者宝塔等其他工具。

export GOROOT=/usr/local/go
export GOPATH=/usr/local/gopath
export GOBIN=$GOPATH/bin
export PATH=$PATH:$GOROOT/bin
export PATH=$PATH:$GOPATH/bin

保存退出后,执行以下命令使环境变量生效

source /etc/profile

检查golang是否安装成功

go -version

查看golang版本,如果有相应信息返回,则说明golang环境安装成功。

安装derper服务

1. 下载

安装derper服务,执行以下命令

安装之前设置下go代理执行如下代码

go env -w GOPROXY=https://goproxy.cn,direct

然后执行如下代码安装

go install tailscale.com/cmd/derper@main

等待下载安装完成,查看是否安装成功

2. 检查

derper -h

如果有以下提示信息

Usage of derper:-a stringserver address (default ":443")-bootstrap-dns-names stringoptional comma-separated list of hostnames to make available at /bootstrap-dns-c stringconfig file path-certdir stringdirectory to store LetsEncrypt certs, if addr's port is :443 (default "/root/.cache/tailscale/derper-certs")-devrun in localhost development mode-hostname stringLetsEncrypt host name, if addr's port is :443 (default "derp.tailscale.com")-logcollection stringIf non-empty, logtail collection to log to-mesh-psk-file stringif non-empty, path to file containing the mesh pre-shared key file. It should contain some hex string; whitespace is trimmed.-mesh-with stringoptional comma-separated list of hostnames to mesh with; the server's own hostname can be in the list-stunalso run a STUN server-verify-clientsverify clients to this DERP server through a local tailscaled instance.

则说明derper安装成功

在安装路径下/usr/local/gopath/bin下编写如下脚本:由于官方的443需要设置证书 这里我指定81端口

#!/bin/sh
cd /usr/local/gopath/bin
nohup ./derper -hostname 你的域名 -c=derper.conf -a :81 -http-port -1 -certdir /usr/local/cert -certmode manual -stun &
echo $! > app.pid

然后保存文件在当前目录下runderper 赋权可执行

chmod +x runderper

编写如下停止脚本 保存为stopderper.sh

#!/bin/shkill `cat app.pid`
rm -rf app.pid

赋权可执行

chmod +x stopderper.sh

然后在路径/etc/systemd/system目录中添加服务脚本derper.service 脚本内容如下

Description=derper服务
After=network.target[Service]
Type=forking
ExecStart=/usr/local/gopath/bin/runderper
ExecStop=/usr/local/gopath/bin/stopderper.sh[Install]
WantedBy=multi-user.target

然后启动服务并设置开机启动,这样就可以守护程序不被恶意停止,依次执行如下命令

systemctl start derper
systemctl enable derper

然后可以观察日志:

tail -f /usr/local/gopath/bin/console.log

当看到有如下输出

2021/09/18 15:04:31 derper: serving on :81 with TLS
2021/09/18 15:04:31 running STUN server on [::]:3478

登录官方tailscale设置如下代码

代码如下

// Example/default ACLs for unrestricted connections.
{// Declare static groups of users beyond those in the identity service."Groups": {"group:example": [ "user1@example.com", "user2@example.com" ],},// Declare convenient hostname aliases to use in place of IP addresses."Hosts": {"example-host-1": "100.100.100.100",},"ACLs": [// Match absolutely everything. Comment out this section if you want// to define specific ACL restrictions.{ "Action": "accept", "Users": ["*"], "Ports": ["*:*"] },],"derpMap": {"OmitDefaultRegions": true,"Regions": { "900": {"RegionID": 900,"RegionCode": "mangoderp","Nodes": [{"Name": "1","RegionID": 900,"HostName":"你的域名","DERPPort": 81}]}}}
}

打开如下详情页观察

Relays #900 只有这一条说明已经连上了你的derper 并且只启用了你的derper服务器

注意 DERPPort 设置你的自定义端口我设置的81

"OmitDefaultRegions": true 只使用你自己的derper服务器屏蔽官方的服务器

重启客户端 然后相互ping通过则说明服务器正常 否则请反馈给我 本人centos8搭建测试成功

服务器需要开启tcp 81端口 udp 3478

本文参考了如下博客,同时加入了自己的设置保证自定义端口可用

tailscale部署私有中继服务器 - 芒果的博客 - 芒果的个人博客 (mangoroom.cn)

tailscale自建derper服务器中转,使用自定义端口相关推荐

  1. python自建邮件服务器,9行自定义函数教你用Python发送电子邮件!

    作者 l 刘顺祥 来源 l 数据分析1480 前言 大概是在两三个月前,陆续有几位在职朋友问我如何使用Python发送邮件,说心里话这方面的操作在我之前的工作履历中真的没有碰到,所以我没有很好地帮助他 ...

  2. python002 一 eg: Python 入门技巧__环境搭建__git使用、git本地操作、 自建gitlab服务器

    一,环境准备(准备python开发环境) 官网地址: http://www.python.org 进去之后点击导航栏的Downloads,也可以鼠标放到Downloads上弹出菜单选择Source c ...

  3. AFNetworking框架下的SSL服务器证书的自定义验证

    2019独角兽企业重金招聘Python工程师标准>>> # AFNetworking框架下的SSL服务器证书的自定义验证 ## 如何使用本地证书进行SSL验证 #### 开启SSL验 ...

  4. 可自建中继服务器的远程桌面软件: RustDesk

    又一个远程桌面软件,特色就是你可以完全控制它.与 TeamViewer 和 AnyDesk 不同,不仅提供客户端桌面软件程序,还提供服务器端程序,以便您可以设置自己的云服务器和中继.个人使用和商业都是 ...

  5. rust建好友服务器_可自建中继服务器的远程桌面软件: RustDesk

    又一个远程桌面软件,特色就是你可以完全控制它.与 TeamViewer 和 AnyDesk 不同,不仅提供客户端桌面软件程序,还提供服务器端程序,以便您可以设置自己的云服务器和中继.个人使用和商业都是 ...

  6. 自建邮件服务器给企业带来的商业价值

    2019独角兽企业重金招聘Python工程师标准>>> 自建邮件服务器给企业带来的商业价值 随着电子邮件系统应用多样化的日益升值,尽管lj邮件让人深恶痛绝,电子邮件还是成为了企业所必 ...

  7. 自建邮件服务器更给力?

    为什么80%的码农都做不了架构师?>>>    邮件是企业信息化建设的基础设施,为了保证企业信息化管理的顺利进行,企业对邮件服务器各方面的功能.成本都相当重视,在选型时也是慎之又慎. ...

  8. 阿里云ECS服务器自定义端口无法访问问题记录

    记住阿里云ECS服务器有个安全组!!! 购买了阿里云服务器的时候,购买界面那里是可以勾选默认的几个端口是否开启的,服务器默认勾了22端口,使用户能登录服务器. 当我们在服务器里面配置nginx,开启自 ...

  9. ESP32实验-自建web服务器配网01

    目标 通过esp32自建web服务器实现配网.具体来说: 1.esp32上电,手机/电脑/平板连上esp32的wifi. 2.用浏览器访问esp32的网址esp32默认是192.168.4.1 3.在 ...

最新文章

  1. hadoop + spark+ hive 集群搭建(apache版本)
  2. 这个神器竟然能分分钟将多个 kubeconfig 合并成一个!
  3. mysql double 使用_mysql使用double的坑
  4. html图片怎么设置悬浮效果,图片漂浮效果js实现
  5. 在一台服务器上配置多个Tomcat的方法
  6. mysql表分区数量限制_MySQL分区表的局限和限制详解
  7. java poi读取excel日期格式数据
  8. ElasticFusion: Dense SLAM without A pose Graph
  9. 八、Mysql 间隙锁(gap 锁)与慢查询
  10. TestNG套件测试
  11. visio 2013安装教程
  12. 【ZBrush笔刷收集】一百多个实用笔刷和Alpah,以及笔刷使用方法,全部免费
  13. chrome浏览器导出扩展_每日新闻摘要:再次跟踪您的浏览历史记录的Google Chrome浏览器扩展...
  14. led背光源工作的条件及结构
  15. 计算机台式机怎么用无限,台式机如何无线上网 台式机实现无线上网的教程【图文】-太平洋电脑网PConline-太平洋电脑网...
  16. 最新运营级WiFi大师专业版源码
  17. Laravel+layui后台开发框架
  18. Java 字段在内存中存储是大端还是小端
  19. Mysql数据库修改某个字段的值,或修改某个字段的默认值
  20. android 输入法悬浮,专为大屏手机设计,谷歌Gboard输入法新增悬浮键盘功能

热门文章

  1. 3DTouch桌面快捷方式
  2. “物联网×”:“互联网+”的下一个风口
  3. u盘中毒了怎么恢复文件?一分钟了解恢复方法
  4. HC小区管理系统mysql如何修改密码
  5. 货币信息高于货币价值而存在
  6. sklearn模块之朴素贝叶斯:(二)伯努利模型的实现
  7. 用Python写了个工具,完美破解了MySQL!!(建议收藏)
  8. nginx关闭请求处理ngx_http_finalize_request源码分析
  9. CSFR(跨站请求伪造)攻击与防御
  10. vue延迟渲染组件_Vue 动态组件渲染问题分析