緣起
大家都知道,最近的網(wǎng)絡(luò)不怎么和諧,速度慢不說(shuō),VPN 還總斷,好在云梯 提供了挺多的服務(wù)器可以切換, 但云梯的服務(wù)器又挺多,Linux 的 Network Manager 又不支持批量添加配置,甚至配置文件都不能復(fù)制新建, 每個(gè)服務(wù)器的配置都得手動(dòng)加,非常麻煩。
當(dāng)然,也可以每次切換時(shí)打開(kāi)配置,光改地址,但是這也非常不方便。
作為一個(gè)合格的開(kāi)發(fā)人員,當(dāng)然會(huì)想到用程序批量生成配置,我選擇使用 Python。
尋找配置文件的位置
要批量創(chuàng)建配置,首先得知道配置文件在哪里,比如自己的云梯 VPN 地址中包含 example 字樣,這樣找起來(lái)就方便了。
代碼如下:grep 'example' ~/.config -r
grep 'example' /etc/ -r
于是輕松的定位到了配置文件的位置
代碼如下:grep: /etc/NetworkManager/system-connections/yunti.pptp.a: Permission denied
grep: /etc/NetworkManager/system-connections/yunti.pptp.b: Permission denied
grep: /etc/NetworkManager/system-connections/yunti.pptp.c: Permission denied
了解配置文件結(jié)構(gòu)
拿一個(gè)配置文件出來(lái)看看:
[connection]id=yunti.pptp.tw1uuid=063db9b5-5915-4f3e-8bb4-2fe58abf5be5type=vpnpermissions=user:greatghoul:;autoconnect=false[vpn]service-type=org.freedesktop.NetworkManager.pptpgateway=tw1.example.comrequire-mppe=yesuser=greatghoulrefuse-chap=yesrefuse-eap=yespassword-flags=1refuse-pap=yes[ipv4]method=autodns=8.8.8.8;8.8.4.4;ignore-auto-dns=true
顯然,有這么幾個(gè)部分需要?jiǎng)討B(tài)生成的
connection.id 這個(gè)需要是唯一的 connection.uuid 就是 uuid 生成一個(gè)就好了 connection.permissions 要添加上你的用戶名嘛 vpn.gateway VPN 服務(wù)器的地址 vpn.user VPN 服務(wù)的帳戶名 ipv4.dns 按你喜好配置就好既然了解了,就開(kāi)工吧
準(zhǔn)備配置信息及模板
首先,讓我們準(zhǔn)備好材料:
VPN_SERVERS = [ { 'id': 'yunti.pptp.a', 'gateway': 'a.example.com' }, { 'id': 'yunti.pptp.b', 'gateway': 'b.example.com' }, { 'id': 'yunti.pptp.c', 'gateway': 'c.example.com' },]
配置中 uuid 需要?jiǎng)討B(tài)生成了
>>> import uuid>>> str(uuid.uuid1())'0621ba62-888a-11e3-805c-44334c786649'
至于 connection.permissions、vpn.user 和 ipv4.dns 直接寫(xiě)在配置模板中即可。
tpl.cfg[connection]id=%(id)suuid=%(uuid)stype=vpnpermissions=user:greatghoul:;autoconnect=false[vpn]service-type=org.freedesktop.NetworkManager.pptpgateway=%(gateway)srequire-mppe=yesuser=greatghoulrefuse-chap=yesrefuse-eap=yespassword-flags=1refuse-pap=yes[ipv4]method=autodns=8.8.8.8;8.8.4.4;ignore-auto-dns=true
生成 VPN 連接配置文件
新聞熱點(diǎn)
疑難解答
圖片精選