每日签到
奶昔超市
积分商城
奶昔访达
添加到桌面
收藏本站
切换到宽版
板块
NaixiBBS
扩展
Fun
登录
注册
奶昔论坛
»
板块
›
内容区
›
技术
›
用一台闲置小鸡,搭个私有版 ngrok(sish 内网穿透实战 ...
返回列表
发布新帖
查看:
203
|
回复:
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
返回顶部
关灯
在本版发帖
快速回复
返回顶部
返回列表