我想向工作文件中添加行,以便使用 创建的脚本01-netcfg-yaml
自动连接接口。ppp
pppoeconf
但我找不到任何指南或示例。
我将非常感激有关如何做到这一点的“如何做”的帮助。
提前致谢。
答案1
我已经配置了运行 Ubuntu 的 PPPoE 路由器,使用 netplan 作为常规以太网接口,并直接使用 systemd 作为 PPPoE 接口。
对于 PPP 部分,我完全将 PPPoE 接口从 netplan 中移除,并创建了一个/etc/systemd/system/ppp.service
如下文件。ens7
是我的接口,它连接到我的 PPPoE 调制解调器,您需要根据自己的情况进行更改(每次发生)。我还通过将 MTU 设置为 1508 来使用小型巨型帧。如果您的 NIC 或 ISP 无法处理这种情况,那么您应该删除该行:
[Unit]
BindsTo=sys-subsystem-net-devices-ens7.device
After=sys-subsystem-net-devices-ens7.device
[Service]
ExecStartPre=/sbin/ip link set mtu 1508 dev ens7
ExecStartPre=/sbin/ip link set up dev ens7
ExecStart=/usr/sbin/pppd call provider
Type=forking
SuccessExitStatus=5
PIDFile=/run/ppp-pppoe.pid
[Install]
WantedBy=sys-subsystem-net-devices-ens7.device
我的/etc/ppp/peers/provider
看起来像这样。再次强调,ens7
是我的 PPPoE 接口;您需要将其更改为您自己的接口,以及my_username_with_my_isp
。如果您的硬件(或 ISP)无法处理小型巨型帧,并且您删除了上面的 mtu 行,则还要将下面的mtu
和更改为 1492。我还在这里启用了 ipv6。如果您希望使用 ISP 提供的 DNS 服务器(而不是静态配置它们),mru
请添加。usepeerdns
user my_username_with_my_isp
plugin rp-pppoe.so
ens7
noipdefault
defaultroute
hide-password
lcp-echo-interval 20
lcp-echo-failure 3
noauth
persist
maxfail 0
mtu 1500
mru 1500
noaccomp
default-asyncmap
+ipv6
linkname pppoe
我的看起来像这样。如果您的 ISP 不支持 CHAP,/etc/ppp/chap-secrets
您可能需要使用。/etc/ppp/pap-secrets
* * my_password_with_my_isp
在 18.04 上将所有内容放在一起:
安装该
ppp
包。创建/编辑
/etc/systemd/system/ppp.service
,/etc/ppp/peers/provider
并/etc/ppp/chap-secrets
如上所述。运行
sudo systemctl daemon-reload
,sudo systemctl enable ppp
然后sudo systemctl start ppp
。使用
systemctl status ppp
和查看/var/log/syslog
PPP 状态。
答案2
如果您愿意进行一些修补,那么有一个选择。 networkd-dispatcher
可以帮助您运行自己的脚本来执行您需要的操作,并且大致遵循 /etc/network/ 中脚本的语法。
https://github.com/craftyguy/networkd-dispatcher
此外,这现在已被 Bionic (18.04) 的“universe”存储库所接受:
https://launchpad.net/ubuntu/+source/networkd-dispatcher/1.7-0ubuntu1
# Install
sudo apt install networkd-dispatcher
# Documentation
man networkd-dispatcher