sish高级功能指南:自定义域名、负载均衡与安全配置

sish高级功能指南:自定义域名、负载均衡与安全配置

sish HTTP(S)/WS(S)/TCP Tunnels to localhost using only SSH. sish 项目地址: https://gitcode.com/gh_mirrors/si/sish

前言

sish是一个功能强大的SSH隧道服务工具,它允许用户通过SSH协议安全地暴露本地服务到公网。本文将深入探讨sish的高级功能配置,帮助用户更好地定制和使用这一工具。

自定义子域名配置

默认情况下,sish会为每个连接分配随机子域名。但用户可以通过以下方式指定自己的子域名:

  1. 首先确保服务端配置中--bind-random-subdomains参数设置为false
  2. 在SSH连接命令中,在远程端口说明符前添加自定义子域名

示例命令:

ssh -p 2222 -R foo:80:localhost:8080 tuns.sh

此命令会尝试将"foo"作为子域名分配给连接。如果该子域名未被占用,就会被成功分配。

WebSocket支持详解

sish对WebSocket协议提供了原生支持:

  1. HTTP流量代理:使用端口80作为远程端口
  2. HTTPS流量代理:使用端口443作为远程端口
  3. 其他端口:仅支持TCP连接,且需确保端口可用

这种设计使得sish可以无缝支持Web应用和传统TCP服务的混合部署场景。

IP与地理位置访问控制

IP白名单配置

通过--whitelisted-ips参数可以设置CIDR格式的IP范围白名单:

  • 支持多个范围,用逗号分隔
  • 单个IP可使用/32掩码
  • 示例:"192.30.252.0/22,185.199.108.0/22"

国家/地区白名单

使用--whitelisted-countries参数可限制特定国家的访问:

  1. 需要同时启用--geodb=true
  2. 国家代码使用ISO格式
  3. 多国家用逗号分隔
  4. 示例:"pt,us"表示允许葡萄牙和美国

自定义域名高级配置

基础验证流程

  1. DNS记录设置

    • CNAME/A记录:指向sish服务的主域名或IP
    • TXT记录:_sish.customdomain,包含SSH密钥指纹
  2. 密钥指纹获取

ssh-keygen -lf ~/.ssh/id_rsa | awk '{print $2}'

高级信任模式

对于可信环境,可以放宽域名验证限制:

  1. 完全开放模式

    • 设置--bind-any-host=true
    • 允许任意域名/子域名组合
  2. 限定域名模式

    • 使用--bind-hosts参数
    • 指定允许的域名列表,逗号分隔

SSL证书管理

  1. 通过--https-certificate-directory指定证书目录
  2. 证书文件命名规则:
    • 证书:name.crt
    • 私钥:name.key
  3. 支持多证书自动加载

负载均衡功能详解

sish支持三种负载均衡模式,需在启动时启用相应参数:

  1. HTTP负载均衡--http-load-balancer
  2. TCP负载均衡--tcp-load-balancer
  3. 别名负载均衡--alias-load-balancer

典型应用场景

假设有多台边缘设备(如树莓派)运行相同服务:

  1. 各设备使用相同转发配置连接sish
  2. sish自动均衡分配到所有可用节点
  3. 新节点加入/离开时自动调整

客户端IP获取与安全

标准转发头信息

sish自动添加以下HTTP头信息:

  • X-Forwarded-For:客户端原始IP及代理链
  • X-Forwarded-Host:原始Host头
  • X-Forwarded-Proto:原始协议(http/https)
  • X-Forwarded-Port:原始端口

安全注意事项

  1. IP获取建议

    • X-Forwarded-For最右侧值获取真实客户端IP
    • 不要信任X-Real-Ip
  2. 安全风险

    • 转发头可能被伪造
    • 建议结合其他验证机制

结语

通过合理配置sish的高级功能,用户可以构建灵活、安全且高性能的隧道服务。无论是个人开发者还是企业用户,都能根据实际需求找到合适的配置方案。建议在生产环境中充分测试各项功能,并遵循最小权限原则进行安全配置。

sish HTTP(S)/WS(S)/TCP Tunnels to localhost using only SSH. sish 项目地址: https://gitcode.com/gh_mirrors/si/sish

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

羿妍玫Ivan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值