#proxy #relay #statistics #proxy-server #aprs #tool #packets

bin+lib aprsproxy

一个简单的 APRS-IS 代理工具

1 个不稳定版本

0.3.5 2022 年 8 月 14 日

#5#aprs

AGPL-3.0

29KB
389

AprsProxy

我正在考虑如何从我的 iGates(从我或朋友那里)监控 APRS 统计数据,一种合适的方法是在 iGates 和 APRS-IS 服务器之间运行一个 APRS 代理服务器。但我找不到一个软件来做这个,所以我决定自己写一个。

这个 APRS 代理服务器将从设备接收数据包,将其记录到文件中,生成统计数据或将特定的 aprs 数据包发送/转发到其他应用程序,替换文本以满足我的要求,并将其重新发送到本地的 APRS-IS 服务器。

特性

  • 使用多个关键字进行文本替换
  • 内置转发器
  • 简单,只有一个命令,无需配置文件
  • 以高效率处理多个客户端连接
  • 可以通过域名使用 aprs-is
  • 每日日志到文件
  • 与 docker 一起工作

命令

$ ./aprsproxy -h
   ___                ___                   
  / _ | ___  _______ / _ \_______ __ ____ __
 / __ |/ _ \/ __(_-</ ___/ __/ _ \\ \ / // /
/_/ |_/ .__/_/ /___/_/  /_/  \___/_\_\\_, / 
     /_/                             /___/  
                A simply APRS-IS proxy tool.

USAGE:
    aprsproxy [FLAGS] [OPTIONS]

FLAGS:
    -f, --filelog    Enable file logging
    -h, --help       Prints help information
    -q, --quiet      Quiet mode, no output to stdout
    -V, --version    Prints version information
    -v, --verbose    Verbose mode (-v, -vv, -vvv, etc.)

OPTIONS:
        --to <forward-to>              Forward the matched APRS packets to Send-only APRS-IS service with http protocol
                                       [default: china.aprs2.net:8080]
        --forward <forward-with>...    Forward APRS packets start with the line prefix
    -l, --local <local-addr>           The local address and port to listen on [default: 0.0.0.0:14580]
    -r, --remote <remote-addr>         The remote address and port to connect to [default: china.aprs2.net:14580]
        --replace <replace-from>...    The text to be replaced, can be multiple values
        --with <replace-with>...       The text to replace with, must be the same length of replace-from

示例

$ ./aprsproxy --replace=SO23 --with=T3ET -f -v
[2021-07-27T02:33:45Z INFO  aprsproxy] Starting up...
[2021-07-27T02:33:45Z INFO  aprsproxy::dns] Resolving ip address...
[2021-07-27T02:33:45Z INFO  aprsproxy::relay] Listening on: 0.0.0.0:8074
[2021-07-27T02:33:45Z INFO  aprsproxy::relay] Proxying to: 43.245.198.229:14580
[2021-07-27T02:33:45Z INFO  aprsproxy::relay] A new connection 113.118.74.21:47851 is coming!
[2021-07-27T02:33:46Z INFO  aprsproxy::relay] user B**** pass ****** vers APRS-51WG3-8K-20190610
[2021-07-27T02:34:06Z INFO  aprsproxy::relay] BI7KCD-9>R2UYX6,BA7NQ-10*,WIDE1*,BH7KCJ-3*,WIDE2*:`)XQm4>/`"42}_%
[2021-07-27T02:34:53Z INFO  aprsproxy::relay] BI7KCD-9>R3PPR7,BA7NQ-10*,WIDE1*,BH7KCJ-3*,WIDE2*:`)XRmpC>/`"4#}_%
[2021-07-27T02:35:07Z INFO  aprsproxy::relay] VR2ZVR>RR2VT1,BH7KCJ-3*,WIDE1*:`*_LnplK\]"4s}Hello from VR2ZVR...Stay Safe !!=

使用 docker 运行

$ docker run -it --init --rm -e TZ=Asia/Shanghai -p 14580:14580 lazywalker/aprsproxy --replace=SO23 --with=T3ET -v
2022-08-13 22:32:53.087+08:00 INFO  aprsproxy - Starting up...
2022-08-13 22:32:53.087+08:00 INFO  aprsproxy::dns - Resolving ip address...
2022-08-13 22:32:53.112+08:00 INFO  aprsproxy::relay - Listening on: 0.0.0.0:14580
2022-08-13 22:32:53.112+08:00 INFO  aprsproxy::relay - Proxying to: 156.251.162.146:14580
...

# log to files
$ docker run -it --init --rm -e TZ=Asia/Shanghai -p 14580:14580 --volume /volume1/docker/aprsproxy:/app/log lazywalker/aprsproxy --replace=SO23 --with=T3ET -v -f

依赖项

~14–28MB
~418K SLoC