5个稳定版本
1.3.1 | 2023年7月26日 |
---|---|
1.3.0 | 2022年6月25日 |
1.2.1 | 2022年1月14日 |
1.2.0 | 2021年9月16日 |
1.1.0 | 2021年9月16日 |
#360 在 Unix API
每月 28次下载
18KB
281 代码行
network-manager-connection-action 
使用网络管理器的dbus接口监听连接/断开连接,并执行指定命令,无需root权限
用例
一个可能的用例是在连接公司VPN时为公司域名添加自动ssh规范,这种用法可以在example
目录中找到。
示例运行
配置为在VPN连接上运行规范并在NetworkManager连接/断开连接时的输出
<user>$ network-manager-connection-action -c example/config.toml
[2021-05-02T13:51:45Z INFO] Watching for NetworkManager events
[2021-05-02T13:53:41Z INFO] Entreprise VPN Up
CanonicalDomains public.entreprise.com internal.entreprise.com anotherdomains.fromvpn
[2021-05-02T13:56:21Z INFO] Entreprise VPN Down
CanonicalDomains public.entreprise.com
构建和安装
cargo build --release
cp target/release/network-manager-connection-action /usr/bin/network-manager-connection-action
配置
您需要要监视网络的UUID
您可以使用nmcli c
找到连接的UUID
创建一个配置文件,例如$HOME/.config/network_manager_connection_actionrc
配置包含与现有连接相对应的网络管理器UUID。
对于每个连接的配置,您可以选择一个命令和上下文,请参阅示例
Systemd自动启动
将单元文件放在这里
$HOME/.config/systemd/user/network-manager-connection-action.service
运行并启用
systemctl --user daemon-reload
systemctl --user start network-manager-connection-action.service
systemctl --user enable network-manager-connection-action.service
journalctl --user -fu network-manager-connection-action.service
未来
使用systemd varlink接口
在启动时,程序可以查询已连接的连接并应用配置
代码和功能可以从许多方面进行改进,请随时提交合并请求:)
依赖项
~12–23MB
~323K SLoC