diff --git a/cmd/agent/main.go b/cmd/agent/main.go index 486ee84..51110d5 100644 --- a/cmd/agent/main.go +++ b/cmd/agent/main.go @@ -24,7 +24,6 @@ import ( "github.com/naiba/nezha/model" "github.com/naiba/nezha/pkg/utils" pb "github.com/naiba/nezha/proto" - "github.com/naiba/nezha/service/dao" "github.com/naiba/nezha/service/rpc" ) @@ -37,6 +36,7 @@ var ( server string clientSecret string version string + debug bool ) var ( @@ -60,19 +60,14 @@ const ( func main() { // 来自于 GoReleaser 的版本号 - dao.Version = version + monitor.Version = version - var debug bool flag.String("i", "", "unused 旧Agent配置兼容") flag.BoolVar(&debug, "d", false, "开启调试信息") flag.StringVar(&server, "s", "localhost:5555", "管理面板RPC端口") flag.StringVar(&clientSecret, "p", "", "Agent连接Secret") flag.Parse() - dao.Conf = &model.Config{ - Debug: debug, - } - if server == "" || clientSecret == "" { flag.Usage() return @@ -310,7 +305,7 @@ func doSelfUpdate() { } func println(v ...interface{}) { - if dao.Conf.Debug { + if debug { log.Println(v...) } } diff --git a/cmd/agent/monitor/monitor.go b/cmd/agent/monitor/monitor.go index 74832e0..2afdb7b 100644 --- a/cmd/agent/monitor/monitor.go +++ b/cmd/agent/monitor/monitor.go @@ -14,9 +14,9 @@ import ( "github.com/shirou/gopsutil/v3/net" "github.com/naiba/nezha/model" - "github.com/naiba/nezha/service/dao" ) +var Version string = "debug" var netInSpeed, netOutSpeed, netInTransfer, netOutTransfer, lastUpdate uint64 var expectDiskFsTypes = []string{ "apfs", "ext4", "ext3", "ext2", "f2fs", "reiserfs", "jfs", "btrfs", "fuseblk", "zfs", "simfs", "ntfs", "fat32", "exfat", "xfs", @@ -59,7 +59,7 @@ func GetHost() *model.Host { BootTime: hi.BootTime, IP: cachedIP, CountryCode: strings.ToLower(cachedCountry), - Version: dao.Version, + Version: Version, } } diff --git a/cmd/agent/monitor/myip.go b/cmd/agent/monitor/myip.go index 73c9ba2..b5e7787 100644 --- a/cmd/agent/monitor/myip.go +++ b/cmd/agent/monitor/myip.go @@ -13,18 +13,17 @@ import ( type geoIP struct { CountryCode string `json:"country_code,omitempty"` IP string `json:"ip,omitempty"` + Query string `json:"query,omitempty"` } var ( - ipv4Servers = []string{ - "https://api.ip.sb/geoip", - "https://ip.seeip.org/geoip", - "https://ipapi.co/json", - } - ipv6Servers = []string{ + geoIPApiList = []string{ "https://api.ip.sb/geoip", "https://ip.seeip.org/geoip", "https://ipapi.co/json", + "https://freegeoip.app/json/", + "http://ip-api.com/json/", + "https://extreme-ip-lookup.com/json/", } cachedIP, cachedCountry string httpClientV4 = utils.NewSingleStackHTTPClient(time.Second*20, time.Second*5, time.Second*10, false) @@ -33,8 +32,8 @@ var ( func UpdateIP() { for { - ipv4 := fetchGeoIP(ipv4Servers, false) - ipv6 := fetchGeoIP(ipv6Servers, true) + ipv4 := fetchGeoIP(geoIPApiList, false) + ipv6 := fetchGeoIP(geoIPApiList, true) cachedIP = fmt.Sprintf("ip(v4:%s,v6:[%s])", ipv4.IP, ipv6.IP) if ipv4.CountryCode != "" { cachedCountry = ipv4.CountryCode @@ -65,6 +64,9 @@ func fetchGeoIP(servers []string, isV6 bool) geoIP { if err != nil { continue } + if ip.IP == "" && ip.Query != "" { + ip.IP = ip.Query + } return ip } }