每日签到
奶昔超市
积分商城
奶昔访达
添加到桌面
收藏本站
切换到宽版
板块
NaixiBBS
扩展
Fun
登录
注册
奶昔论坛
»
板块
›
内容区
›
技术
›
用一台闲置小鸡,搭个私有版 ngrok(sish 内网穿透实战 ...
返回列表
发布新帖
查看:
129
|
回复:
0
[教程]
用一台闲置小鸡,搭个私有版 ngrok(sish 内网穿透实战)
Feng007
Feng007
当前离线
积分
93
雷达卡
发表于 2025-12-25 14:39:37
|
查看全部
|
阅读模式
登录后免广告,享受更多奶昔会员权益!
您需要
登录
才可以下载或查看,没有账号?
注册
×
手里正好有一台 VMRack 的闲置小鸡,性能一般高但胜在公网 IP 稳定。与其吃灰,不如拿来干点实事,于是折腾了一套 基于 sish 的私有内网穿透服务,效果比预期好不少。
简单说一句结论:
够轻、够稳、够省事,个人或小团队完全够用。
sish 是一个开源的反向隧道项目,功能上和 ngrok 类似,但部署在自己服务器上,完全可控。
为什么选 sish?
用下来有几个点比较打动我:
客户端零安装:只要有 SSH,任何系统都能用
服务端自动申请 HTTPS 证书:直接走 Let’s Encrypt
支持泛域名:每个服务一个子域名,很清爽
资源占用极低:小鸡也能跑
安全可控:公钥白名单,谁能用你说了算
一句话总结:
非商业场景下,这是我目前最顺手的内网穿透方案。
:zero: 前置条件
在开始前,你需要准备:
一台 有公网 IP 的 Linux VPS(本文使用的是 VMRack 云服务,其他商家同理)
一个域名(强烈建议托管在 Cloudflare)
本地机器已配置 SSH key
:one: Cloudflare 侧的 DNS 设置
在 Cloudflare 面板新增一条解析:
Name:*(泛解析)
Content:你的 VPS 公网 IP
Proxy status:DNS only(灰云)
:warning: 这里一定不要开小黄云,否则证书和回源都会出问题。
如果你习惯分开用,也可以单独加一条:
ssh.your-domain.xyz → VPS_IP
:two: 调整 VPS 默认 SSH 端口(很关键)
为了让 sish 直接监听 22 端口,必须先把系统自带的 SSH 挪走,否则会冲突。
编辑配置文件:
vim /etc/ssh/sshd_config
修改为类似这样:
Port 10000
#Port 22
重启 SSH 服务:
systemctl restart sshd
:warning: 注意事项:
之后登录 VPS 记得带 -p 10000
防火墙提前放行:10000 / 80 / 443
:three: 安装 sish 并准备运行环境
这一步主要是做三件事:
建用户 → 下程序 → 准备密钥
直接按顺序执行即可。
# 创建系统用户
useradd --system --home /opt/sish --shell /usr/sbin/nologin sish || true
mkdir -p /opt/sish/{ssl,keys,pubkeys,templates}
chown -R sish:sish /opt/sish
下载并安装 sish(二进制版,amd64):
cd /tmp
wget
https://github.com/antoniomika/s ... .linux-amd64.tar.gz
tar -xvf sish-2.20.0.linux-amd64.tar.gz
install -m 0755 sish-2.20.0.linux-amd64/sish /usr/local/bin/sish
拉取默认模板:
git clone --depth 1
https://github.com/antoniomika/sish.git
/tmp/sish-src
cp -r /tmp/sish-src/templates /opt/sish/
chown -R sish:sish /opt/sish/templates
生成服务端 SSH Host Key:
sudo -u sish ssh-keygen -t ed25519 -N "" -f /opt/sish/keys/ssh_host_ed25519_key
rm /opt/sish/keys/ssh_host_ed25519_key.pub
:four: 启用公钥鉴权(防止被白嫖)
sish 默认支持 SSH 公钥白名单,这一点非常加分。
在你本地电脑上查看自己的公钥:
cat ~/.ssh/id_ed25519.pub
然后在 VPS 上写入:
echo "你的公钥内容" > /opt/sish/pubkeys/me.pub
chown sish:sish /opt/sish/pubkeys/me.pub
之后,只有这个 key 才能建立隧道连接。
:five: 配置 systemd 服务(核心)
创建服务文件:
vim /etc/systemd/system/sish.service
注意替换你自己的域名和邮箱:
[Unit]
Description=sish tunnel server
After=network-online.target
[Service]
User=sish
Group=sish
WorkingDirectory=/opt/sish
AmbientCapabilities=CAP_NET_BIND_SERVICE
CapabilityBoundingSet=CAP_NET_BIND_SERVICE
NoNewPrivileges=true
ExecStart=/usr/local/bin/sish \
--ssh-address=:22 \
--http-address=:80 \
--https-address=:443 \
--domain=your-domain.xyz \
--authentication=true \
--authentication-keys-directory=/opt/sish/pubkeys \
--private-keys-directory=/opt/sish/keys \
--https \
--https-certificate-directory=/opt/sish/ssl \
--https-ondemand-certificate \
--https-ondemand-certificate-accept-terms \
--https-ondemand-certificate-email=your-email \
--bind-random-subdomains=false \
--force-requested-subdomains=true
Restart=always
RestartSec=2
LimitNOFILE=1048576
[Install]
WantedBy=multi-user.target
启动并检查状态:
systemctl daemon-reload
systemctl enable --now sish
systemctl status sish
:six: 实际使用(真的只要一行)
假设你本地有个 Web 服务跑在 8080,想映射到公网:
ssh -R dev:80:127.0.0.1:8080 ssh.your-domain.xyz
成功后可直接访问:
https://dev.your-domain.xyz
http://dev.your-domain.xyz
首次 HTTPS 访问稍慢是正常的,sish 会自动去申请证书。
一些使用中的坑与提醒
HTTPS 首次访问 ≈ 等证书,不是卡死
Cloudflare 必须灰云
公钥没放进 /opt/sish/pubkeys/ 一定连不上
VMRack 这类小鸡跑 sish 非常合适,CPU 和内存几乎没压力
总结一句
如果你手里也有一台 VMRack 或其他闲置 VPS,
不想再折腾花里胡哨的客户端,
sish 是一个非常干净、实用、长期可用的内网穿透方案。
后续我也准备用它挂开发环境、Webhook、临时服务,比公网开端口舒服多了。
爱生活,爱奶昔~
回复
使用道具
举报
照妖镜
返回列表
发布新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册
本版积分规则
发表回复
回帖后跳转到最后一页
浏览过的版块
科技
云计算
相关网站
9eSIM
eSTKme
eSIM.GG
RedteaGO
蚊子玩卡
站内导航
RSS
Sitemap
CDK
SSO
更多...
站务支持
用户认证制度
User Verification System
获取邀请码
广告招商
联系支持
卡粉专属群
加入官方群
© 2026
Naixi Networks
.
沪ICP备13020230号-1
|
沪公网安备 31010702007642号
手机版
小黑屋
RSS
返回顶部
关灯
在本版发帖
快速回复
返回顶部
返回列表