我正在尝试简化 sles15 的一些配置,通过 ansible 将隧道配置推送到我的机器。目前,每当我配置隧道时,我都会使用机器上的 ssh 来启动 ssh 隧道和 sudo 命令(运行 tunctl (不再存在))。
我想做的是将隧道持久保留在 sles15 计算机上,然后使用 ssh 和 -w 命令连接到它。
然而,这根本不值一提:
<interface>
<link-type>tun</link-type>
<name>tun1</name>
<control>
<mode>boot</mode>
</control>
<firewall/>
<tun>
<owner>ansible</owner>
<group>sshinternalusers</group>
</tun>
<ipv4>
<enabled>true</enabled>
<forwarding>true</forwarding>
</ipv4>
<ipv6>
<enabled>false</enabled>
<forwarding>false</forwarding>
</ipv6>
</interface>
这也不起作用(我认为这是传统的做法)
STARTMODE='onboot'
BOOTPROTO='static'
TUNNEL_SET_PERSISTENT='yes'
TUNNEL='tun'
TUNNEL_LOCAL_IPADDR=172.20.26.115
TUNNEL_REMOTE_IPADDR=172.20.26.114
TUNNEL_DEVICE=tun0
TUNNEL_SET_OWNER=ansible
TUNNEL_SET_GROUP=sshinternalusers
我没有找到任何有关 XML 的文档(除了对架构进行逆向工程之外)。当我重新启动机器时,隧道似乎确实启动了,但必须有不同的方法来启动隧道,因为当我运行 ifup tun0 时,它告诉我“没有设备”
答案1
弄清楚邪恶者在做什么的最简单方法是制作老式的网络配置脚本(记录在man ifcfg-tunnel
)
添加这个:
STARTMODE='auto'
BOOTPROTO='static'
TUNNEL_SET_PERSISTENT='yes'
TUNNEL='tun'
IPADDR=172.20.26.115
REMOTE_IPADDR=172.20.26.114
TUNNEL_DEVICE=tun0
TUNNEL_SET_OWNER=ansible
TUNNEL_SET_GROUP=sshinternalusers
ZONE=public
MTU=1300
作为 /etc/sysconfig/network/ifcfg-tun0
跑步wicked ifup tun0
隧道应该出现在ip addr show
现在(这是基于 suse 发布的一些幻灯片来展示 wicked 有多酷)
cd 到 /etc/sysconfig/network
跑步wicked show-config compat:
这将吐出此目录中所有内容的接口文件(即 ifcfg-tun0)
输入该输出,可能如下所示:
<interface >
<name>tun1</name>
<control>
<mode>auto</mode>
</control>
<firewall>
<zone>public</zone>
</firewall>
<tun>
<owner>479</owner>
<group>479</group>
</tun>
<link>
<mtu>1300</mtu>
</link>
<ipv4>
<enabled>true</enabled>
<forwarding>true</forwarding>
</ipv4>
<ipv4:static>
<address>
<local>172.20.42.115/32</local>
<peer>172.20.42.114</peer>
</address>
</ipv4:static>
<ipv6>
<enabled>false</enabled>
<forwarding>false</forwarding>
</ipv6>
</interface>
在 /etc/wicked/ifconfig/tun0.xml 中并从 sysconfig 中删除旧的配置文件
如果你这样做wicked ifreload tun0
现在应该使用新的配置,您可以重新启动或使用 wicked ifdown/ifup 来确认。
注意,所有者和组是 ID,而不是用户名
并且,由于您使用的是 ssh,因此不要忘记PermitTunnel Yes
在 sshd 配置文件中进行设置。
FWIW(而且不多,因为您不想在运行 wicked 时手动使用它)的替代品tunctl
似乎是ip tunnel
.