tailscale自建derper服务器中转,使用自定义端口
使用自定义端口需要自己有域名 并且申请了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服务器中转,使用自定义端口相关推荐
- python自建邮件服务器,9行自定义函数教你用Python发送电子邮件!
作者 l 刘顺祥 来源 l 数据分析1480 前言 大概是在两三个月前,陆续有几位在职朋友问我如何使用Python发送邮件,说心里话这方面的操作在我之前的工作履历中真的没有碰到,所以我没有很好地帮助他 ...
- python002 一 eg: Python 入门技巧__环境搭建__git使用、git本地操作、 自建gitlab服务器
一,环境准备(准备python开发环境) 官网地址: http://www.python.org 进去之后点击导航栏的Downloads,也可以鼠标放到Downloads上弹出菜单选择Source c ...
- AFNetworking框架下的SSL服务器证书的自定义验证
2019独角兽企业重金招聘Python工程师标准>>> # AFNetworking框架下的SSL服务器证书的自定义验证 ## 如何使用本地证书进行SSL验证 #### 开启SSL验 ...
- 可自建中继服务器的远程桌面软件: RustDesk
又一个远程桌面软件,特色就是你可以完全控制它.与 TeamViewer 和 AnyDesk 不同,不仅提供客户端桌面软件程序,还提供服务器端程序,以便您可以设置自己的云服务器和中继.个人使用和商业都是 ...
- rust建好友服务器_可自建中继服务器的远程桌面软件: RustDesk
又一个远程桌面软件,特色就是你可以完全控制它.与 TeamViewer 和 AnyDesk 不同,不仅提供客户端桌面软件程序,还提供服务器端程序,以便您可以设置自己的云服务器和中继.个人使用和商业都是 ...
- 自建邮件服务器给企业带来的商业价值
2019独角兽企业重金招聘Python工程师标准>>> 自建邮件服务器给企业带来的商业价值 随着电子邮件系统应用多样化的日益升值,尽管lj邮件让人深恶痛绝,电子邮件还是成为了企业所必 ...
- 自建邮件服务器更给力?
为什么80%的码农都做不了架构师?>>> 邮件是企业信息化建设的基础设施,为了保证企业信息化管理的顺利进行,企业对邮件服务器各方面的功能.成本都相当重视,在选型时也是慎之又慎. ...
- 阿里云ECS服务器自定义端口无法访问问题记录
记住阿里云ECS服务器有个安全组!!! 购买了阿里云服务器的时候,购买界面那里是可以勾选默认的几个端口是否开启的,服务器默认勾了22端口,使用户能登录服务器. 当我们在服务器里面配置nginx,开启自 ...
- ESP32实验-自建web服务器配网01
目标 通过esp32自建web服务器实现配网.具体来说: 1.esp32上电,手机/电脑/平板连上esp32的wifi. 2.用浏览器访问esp32的网址esp32默认是192.168.4.1 3.在 ...
最新文章
- hadoop + spark+ hive 集群搭建(apache版本)
- 这个神器竟然能分分钟将多个 kubeconfig 合并成一个!
- mysql double 使用_mysql使用double的坑
- html图片怎么设置悬浮效果,图片漂浮效果js实现
- 在一台服务器上配置多个Tomcat的方法
- mysql表分区数量限制_MySQL分区表的局限和限制详解
- java poi读取excel日期格式数据
- ElasticFusion: Dense SLAM without A pose Graph
- 八、Mysql 间隙锁(gap 锁)与慢查询
- TestNG套件测试
- visio 2013安装教程
- 【ZBrush笔刷收集】一百多个实用笔刷和Alpah,以及笔刷使用方法,全部免费
- chrome浏览器导出扩展_每日新闻摘要:再次跟踪您的浏览历史记录的Google Chrome浏览器扩展...
- led背光源工作的条件及结构
- 计算机台式机怎么用无限,台式机如何无线上网 台式机实现无线上网的教程【图文】-太平洋电脑网PConline-太平洋电脑网...
- 最新运营级WiFi大师专业版源码
- Laravel+layui后台开发框架
- Java 字段在内存中存储是大端还是小端
- Mysql数据库修改某个字段的值,或修改某个字段的默认值
- android 输入法悬浮,专为大屏手机设计,谷歌Gboard输入法新增悬浮键盘功能
热门文章
- 3DTouch桌面快捷方式
- “物联网×”:“互联网+”的下一个风口
- u盘中毒了怎么恢复文件?一分钟了解恢复方法
- HC小区管理系统mysql如何修改密码
- 货币信息高于货币价值而存在
- sklearn模块之朴素贝叶斯:(二)伯努利模型的实现
- 用Python写了个工具,完美破解了MySQL!!(建议收藏)
- nginx关闭请求处理ngx_http_finalize_request源码分析
- CSFR(跨站请求伪造)攻击与防御
- vue延迟渲染组件_Vue 动态组件渲染问题分析