如何向我的 xubuntu 添加额外的 5 个 ipv6 地址并使用 dyndns 注册它们?
我的xubuntu 14.10已经自动配置了ipv4和ipv6地址:
sam@minisrv1:~$ ip -6 addr show eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qlen 1000
inet6 2001:470:**:***:94ef:b2f6:70bb:1674/64 scope global temporary dynamic
valid_lft 600084sec preferred_lft 81084sec
inet6 2001:470:**:***:222:4dff:fea1:389f/64 scope global mngtmpaddr dynamic
valid_lft 4294096507sec preferred_lft 4294096507sec
inet6 fe80::222:4dff:fea1:389f/64 scope link
valid_lft forever preferred_lft forever
完美的!!!
现在我想添加额外的 5 个 ipv6 地址并让它们在 dyndns 上注册。正确的做法是什么?
我检查了/etc/network/interfaces
配置/etc/NetworkManager/NetworkManager.conf
文件,但是它们没有提到 eth0:
# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback
和
[main]
plugins=ifupdown,keyfile,ofono
dns=dnsmasq
[ifupdown]
managed=false
该文件夹/etc/NetworkManager/system-connections/
也是空的。
我还尝试了 GUI 工具“网络连接”和“编辑有线连接 1”。但我不知道该向 和 其他字段写入什么Prefix
。Gateway
它们都来自路由器。
最后,我不知道该把我的 dyndns 更新脚本放在哪里
curl "http://dyn.dns.he.net/nic/update?hostname=***&password=***&myip=???" > /dev/null
更新:
我找到了临时解决方案,感谢这
我创建了/etc/NetworkManager/dispatcher.d/74-sam-ipv6.sh
文件,内容如下:
#!/bin/bash
IF=$1
STATUS=$2
if [ "$IF" == "eth0" ]
then
case "$2" in
up)
logger -s "74-sam-ipv6.sh eth0 up"
ip -6 addr add 2001:470:**:**::*0/64 dev eth0
ip -6 addr add 2001:470:**:**::*1/64 dev eth0
ip -6 addr add 2001:470:**:**::*2/64 dev eth0
ip -6 addr add 2001:470:**:**::*3/64 dev eth0
ip -6 addr add 2001:470:**:**::*4/64 dev eth0
curl "http://dyn.dns.he.net/nic/update?hostname=a.***my-domain***.ru&password=***&myip=2001:470:**:***::*0" > /dev/null
curl "http://dyn.dns.he.net/nic/update?hostname=b.***my-domain***.ru&password=***&myip=2001:470:**:***::*1" > /dev/null
curl "http://dyn.dns.he.net/nic/update?hostname=c.***my-domain***.ru&password=***&myip=2001:470:**:***::*3" > /dev/null
curl "http://dyn.dns.he.net/nic/update?hostname=d.***my-domain***.ru&password=***&myip=2001:470:**:***::*2" > /dev/null
curl "http://dyn.dns.he.net/nic/update?hostname=e.***my-domain***.ru&password=***&myip=2001:470:**:***::*4" > /dev/null
echo ok
;;
down)
logger -s "74-sam-ipv6.sh eth0 down"
ip -6 addr del 2001:470:**:***::*0/64 dev eth0
ip -6 addr del 2001:470:**:***::*1/64 dev eth0
ip -6 addr del 2001:470:**:***::*2/64 dev eth0
ip -6 addr del 2001:470:**:***::*3/64 dev eth0
ip -6 addr del 2001:470:**:***::*4/64 dev eth0
echo ok
;;
pre-up)
logger -s "74-sam-ipv6.sh"
;;
post-down)
logger -s "74-sam-ipv6.sh"
;;
*)
logger -s "74-sam-ipv6.sh ------unknown-commmand-------------------------------------> $2"
;;
esac
fi
答案1
我会将我的地址设置/etc/network/interfaces
为auto
IPv6 设备,然后只需添加一些up
设置down
即可。这是因为它们是静态的,并且机器不太可能更改 IPv6 地址。
我要补充的是/e/n/interfaces
:
auto eth0
iface eth0 inet6 auto
up ip -6 addr add 2001:470:**:**::*0/64 dev eth0
up ip -6 addr add 2001:470:**:**::*1/64 dev eth0
up ip -6 addr add 2001:470:**:**::*2/64 dev eth0
up ip -6 addr add 2001:470:**:**::*3/64 dev eth0
up ip -6 addr add 2001:470:**:**::*4/64 dev eth0
post-up curl "http://dyn.dns.he.net/nic/update?hostname=a.***my-domain***.ru&password=***&myip=2001:470:**:***::*0" || true
post-up curl "http://dyn.dns.he.net/nic/update?hostname=b.***my-domain***.ru&password=***&myip=2001:470:**:***::*1" || true
post-up curl "http://dyn.dns.he.net/nic/update?hostname=c.***my-domain***.ru&password=***&myip=2001:470:**:***::*3" || true
post-up curl "http://dyn.dns.he.net/nic/update?hostname=d.***my-domain***.ru&password=***&myip=2001:470:**:***::*2" || true
post-up curl "http://dyn.dns.he.net/nic/update?hostname=e.***my-domain***.ru&password=***&myip=2001:470:**:***::*4" || true
down ip -6 addr del 2001:470:**:**::*4/64 dev eth0
down ip -6 addr del 2001:470:**:**::*3/64 dev eth0
down ip -6 addr del 2001:470:**:**::*2/64 dev eth0
down ip -6 addr del 2001:470:**:**::*1/64 dev eth0
down ip -6 addr del 2001:470:**:**::*0/64 dev eth0
# eof
请参阅手册页以man 5 interfaces
了解更多信息。
我还会将 IPv4 地址替换127.0.1.1
为我的真实 IPv4 地址eth0
。我会复制该行并将127.0.1.1
地址替换为我的静态 IPv6 地址。我还可能为其他 IPv6 地址添加名称,这在配置文件中很有用。