常用命令
在执行命令的时候请使用完整的路径或者使用相对路径,如:
/$EdgeNode安装目录/bin/edge-node -v
或者:
cd /$EdgeNode安装目录
bin/edge-node -v
如果使用的是GoEdge远程安装的节点,安装目录在 /$ssh用户名/edge-node/edge-node
,请将其中的$ssh用户名
换成你实际使用的用户名,比如root
。
注意:如果提示命令找不到
Unknown command: edge-node
,说明你没有指定命令所在目录,请在命令执行时使用完整的路径或者使用相对路径,参考本文开始说明。
打印帮助信息
edge-node -h
打印版本信息
edge-node -v
启动服务
启动服务并在后台运行:
edge-node start
如果要在前端启动服务,并阻塞当前进程,可以使用:
edge-node
测试服务
可以用下面命令检查服务是否可以正常工作:
edge-node test
停止服务
edge-node stop
对于集群中开启了systemd服务的(默认是开启状态),可以使用以下命令停止节点:
systemctl stop edge-node
优雅退出
edge-node quit
重启服务
edge-node restart
查看服务状态
edge-node status
重载节点配置
在v0.4.5中加入。
edge-node reload
安装systemd系统服务
安装系统服务后,系统重新启动的时候,会自动启动 edge-node
进程。使用此命令的前提是系统已经安装并启用了 systemd
服务。可以通过 systemctl --system
命令来确认 systemd
服务是否在正常运行。
edge-node service
使用守护进程启动服务
自动安装的edge-node会自动启动一个守护进程,手动启动的时候也可以通过 daemon
参数来启动守护进程。当守护进程在运行时,edge-node
进程在遇到故障意外退出时,守护进程可以立即启动一个新的 edge-node
进程,保障服务不会长时间宕机。
edge-node daemon
调试
开启pprof
从v0.2.0开始,可以使用以下命令开启pprof模式,用来监控节点运行性能信息:
edge-node pprof
默认pprof地址为:6060
。
启动后可以在浏览器上访问这个地址,比如 http://127.0.0.1:6060/debug/pprof/
,或者使用go tool pprof
命令来查看,比如查看所有alloc的heap信息:
go tool pprof -alloc_space "http://127.0.0.1:6060/debug/pprof/heap"
查看正在使用的内存空间:
go tool pprof -inuse_space "http://127.0.0.1:6060/debug/pprof/heap"
查看CPU调用信息:
go tool pprof "http://127.0.0.1:6060/debug/pprof/profile"
查看当前正在运行的goroutine:
go tool pprof "http://localhost:6060/debug/pprof/goroutine"
还有更多的示例可以参考 https://jvns.ca/blog/2017/09/24/profiling-go-with-pprof/。
打印正在运行的任务
edge-node trackers
打印正在运行的goroutine
edge-node goman
打印连接数
edge-node conns
强制执行内存回收
默认2分钟回收一次运行时内存,使用此命令可以强制立即执行回收。此命令跟内存缓存无关。
edge-node gc
防火墙相关
目前支持的本地防火墙:
- Firewalld,v0.4.0加入
- nftables,v0.4.7加入
在本地防火墙中丢弃数据包
从v0.4.0开始。
# 丢弃来自 192.168.1.100 的数据包
edge-node ip.drop 192.168.1.100
# 丢弃来自 192.168.1.100 的数据包,有效期 30 秒
edge-node ip.drop 192.168.1.100 --timeout=30
在本地防火墙中拒绝连接
从v0.4.0开始。
# 拒绝来自 192.168.1.100 的连接
edge-node ip.reject 192.168.1.100
# 拒绝来自 192.168.1.100 的连接,有效期 30 秒
edge-node ip.reject 192.168.1.100 --timeout=30
在本地防火墙中删除已有的IP
从v0.4.0开始。
# 删除我们使用 ip.drop 和 ip.reject 添加的IP
edge-node ip.remove 192.168.1.100
本地查询访问日志
从v0.4.8开始,可以在本地使用命令查询访问日志(前提是网站服务中已经启用了访问日志)。
edge-node accesslog
如果有访问时会出现类似以下输出:
1.2.3.4 [15/Jun/2022:11:16:07 +0800] "GET https://goedge.cn/docs/Node/Commands.md?v=3 HTTP/2.0" 200 - 0.54ms
1.2.3.4 [15/Jun/2022:11:16:07 +0800] "GET https://goedge.cn/js/vue.min.js?v=bYbtFn HTTP/2.0" 200 - 0.74ms
1.2.3.4 [15/Jun/2022:11:16:07 +0800] "GET https://goedge.cn/_/@default/@layout.css?v=bYbtE8 HTTP/2.0" 200 - 0.27ms
1.2.3.4 [15/Jun/2022:11:16:07 +0800] "GET https://goedge.cn/css/semantic.min.css?v=bYbtE8 HTTP/2.0" 200 - 0.48ms
可以使用管道符(|
)筛选日志:
edge-node accesslog | grep "css"
输出类似于:
root@vm # bin/edge-node accesslog | grep "css"
1.2.3.4 [15/Jun/2022:11:18:41 +0800] "GET https://goedge.cn/_/@default/@layout.css.map HTTP/2.0" 200 - 0.93ms
1.2.3.4 [15/Jun/2022:11:18:41 +0800] "GET https://goedge.cn/_/@default/docs/index.css.map HTTP/2.0" 200 - 0.81ms
可以使用重定向符号(>
)将日志输出到文件中:
edge-node accesslog > accesslog.log
如果要在后台执行,在命令后面加入&
符号:
edge-node accesslog > accesslog.log &