
shizunge/endlessh-go等额外操作,本工具将是理想选择。
克隆仓库并从源码构建:
go build . ./endlessh-go &
或直接使用Docker镜像:
docker run -d -p 2222:2222 shizunge/endlessh-go -logtostderr -v=1
默认监听端口2222。
测试连接endlessh服务器,SSH客户端将挂起:
ssh -p 2222 localhost
如需类似C语言实现的日志,需同时设置命令行参数-logtostderr和-v=1,日志将输出到stderr。可通过命令行参数配置不同的日志输出目标。
完整栈部署示例请参考examples。
执行./endlessh-go --help查看帮助:
Usage of ./endlessh-go -alsologtostderr 同时输出日志到标准错误和文件 -conn_type string 连接类型,可选值:tcp、tcp4、tcp6(默认"tcp") -enable_prometheus 启用Prometheus指标 -geoip_supplier string IP地理位置信息供应商,可选值:"off"、"ip-api"、"max-mind-db"(默认"off") -host string SSH监听地址(默认"0.0.0.0") -interval_ms int 消息发送间隔(毫秒)(默认1000) -line_length int 最大横幅行长度(默认32) -log_backtrace_at value 当日志命中文件行号file:N时,输出堆栈跟踪 -log_dir string 日志文件目录(非空时启用) -log_link string 日志文件符号链接目录(非空时启用) -logbuflevel int 缓冲指定级别及以下的日志(-1=不缓冲;0=仅缓冲INFO;依此类推),在非生产环境适用性有限 -logtostderr 输出日志到标准错误而非文件 -max_clients int 最大客户端数量(默认4096) -max_mind_db string MaxMind数据库文件路径 -port value SSH监听端口,可多次指定以监听多个端口(默认"2222") -prometheus_clean_unseen_seconds int 移除指定时间内未活动IP的指标(0=禁用)(默认0) -prometheus_entry string Prometheus指标入口路径(默认"metrics") -prometheus_host string Prometheus监听地址(默认"0.0.0.0") -prometheus_port string Prometheus监听端口(默认"2112") -proxy_protocol_enabled 启用PROXY协议,服务器将期望接收PROXY协议头 -proxy_protocol_read_header_timeout_ms int PROXY协议头读取超时(毫秒),超时未接收有效头则忽略(默认200) -stderrthreshold value 指定级别及以上的日志输出到stderr(默认2) -v value V日志级别 -vmodule value 按文件过滤日志的模式列表(格式:pattern=N)
endlessh-go导出以下Prometheus指标:
| 指标名称 | 类型 | 描述 |
|---|---|---|
| endlessh_client_open_count_total | 计数器 | 尝试连接到服务器的客户端总数 |
| endlessh_client_closed_count_total | 计数器 | 停止连接的客户端总数 |
| endlessh_sent_bytes_total | 计数器 | 发送给客户端的总字节数 |
| endlessh_trapped_time_seconds_total | 计数器 | 客户端在陷阱中花费的总秒数 |
| endlessh_client_open_count | 计数器 | 客户端连接数 标签:
|
| endlessh_client_trapped_time_seconds | 计数器 | 客户端在陷阱中花费的秒数 标签:
|
指标默认关闭,需通过命令行参数-enable_prometheus启用。默认监听端口2112,指标入口路径/metrics,可通过命令行参数修改。
***者的geohash标签默认关闭,需通过-geoip_supplier启用。支持ip-api(可能有查询速率限制和商业使用限制,详见其服务条款)或MaxMind离线数据库(需设置-geoip_supplier=max-mind-db并通过-max_mind_db指定数据库路径)。
仪表板要求Grafana 8.2及以上版本。
可通过Grafana.com导入仪表板,ID为***。
仪表板可视化选定时间范围内的数据,IP地址可点击并链接到ARIN数据库。
如有问题或建议,请通过GitHub issue联系。
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务