Tailscale+Caddy 暴露内网服务


安装 xcaddy

xcaddy(caddyserver/xcaddy: Build Caddy with plugins (github.com))是一个编译、调试和管理caddy插件的项目。此项目需要依赖一个 Go 开发环境,具体安装方式请看:Go 开发环境配置

在安装好环境后,安装 xcaddy

go install github.com/caddyserver/xcaddy/cmd/xcaddy@latest

编译带插件的 Caddy

caddy的插件是需要静态编译到二进制文件中的,此处需要我们手动编译

cd /tmp
~/go/bin/xcaddy build --with github.com/mholt/caddy-l4

sudo mv caddy /usr/bin/caddy
sudo systemctl restart caddy

设置配置文件

sudo mkdir /etc/caddy/ -p
sudo vim /etc/caddy/caddy.json

插入下列内容

{
	"apps": {
		"layer4": {
			"servers": {
				"freshrss": {
					"listen": ["0.0.0.0:8773"],
					"routes": [
						{
							"match": [
								{
									"http": []
								}
							],
							"handle": [
								{
									"handler": "proxy",
									"upstreams": [
										{"dial": ["100.121.204.14:8080"]}
									]
								}
							]
						}
					]
				}
			}
		}
	}
}

编辑 caddy 的 systemd

sudo vim /usr/lib/systemd/system/caddy.service

插入下列命令

[Unit]
Description=caddy service

[Service]
Type=simple
ExecStart=/usr/bin/caddy run --environ --config /etc/caddy/caddy.json
ExecReload=/usr/bin/caddy reload --config /etc/caddy/caddy.json --force
Restart=on-failure

[Install]
WantedBy=multi-user.target

启动 Caddy

sudo systemctl daemon-reload
sudo systemctl restart caddy
sudo systemctl status caddy

更新配置

使用下列命令修改配置文件

sudo vim /etc/caddy/caddyFile

之后重载配置

sudo systemctl reload caddy

相关控制命令

命令
启动服务sudo systemctl start caddy
停止服务sudo systemctl stop caddy
重启服务sudo systemctl restart caddy
重载配置sudo systemctl reload caddy
检查状态sudo systemctl status caddy
启用自动启动sudo systemctl enable caddy
禁用自动启动sudo systemctl disable caddy

参考资料


如果本文帮助到了你,帮我点个广告可以咩(o′┏▽┓`o)


评论
  目录