tailscale_iptables

nxtjdc: tailscale up
failed to connect to local tailscaled (which appears to be running as tailscaled, pid 52469). Got error: Failed to connect to local Tailscale daemon for /localapi/v0/status; systemd tailscaled.service not running. Error: dial unix /var/run/tailscale/tailscaled.sock: connect: no such file or directory

超算调试: 这个问题表明 Tailscale 客户端无法连接到本地的 tailscaled 守护进程。首先,你需要确保 tailscaled 服务正在运行。你可以尝试以下命令来启动 tailscaled 服务:

sudo systemctl start tailscaled

如果 tailscaled 服务已经在运行中,但问题仍然存在,可能是由于服务进程崩溃或其他原因导致无法连接。你可以尝试重启 tailscaled 服务来解决问题:

sudo systemctl restart tailscaled

如果重启服务后问题仍然存在,可能需要检查 tailscaled 的日志文件以获取更多详细信息:

sudo journalctl -u tailscaled.service

查看日志文件可能会提供更多线索,帮助你进一步诊断和解决问题。

nxtjdc: journalctl -u tailscaled.service
– Logs begin at Thu 2021-12-23 20:14:17 CST, end at Sun 2024-03-10 15:40:31 CST. –
Feb 16 16:55:30 master.gengzi systemd[1]: Starting Tailscale node agent…
Feb 16 16:55:30 master.gengzi tailscaled[61285]: logtail started
Feb 16 16:55:30 master.gengzi tailscaled[61285]: Program starting: v1.60.0-tb36943c9b-g99e84774b, Go 1.22.0: []string{“/usr/sbin/tail>
Feb 16 16:55:30 master.gengzi tailscaled[61285]: LogID: aa9012e1f77be7d94108c367ab084dcff77c41539bb39ccd4a956dddbc4cd401
Feb 16 16:55:30 master.gengzi tailscaled[61285]: logpolicy: using system state directory “/var/lib/tailscale”
Feb 16 16:55:30 master.gengzi tailscaled[61285]: logpolicy.ConfigFromFile /var/lib/tailscale/tailscaled.log.conf: open /var/lib/tails>
Feb 16 16:55:30 master.gengzi tailscaled[61285]: logpolicy.Config.Validate for /var/lib/tailscale/tailscaled.log.conf: config is nil
Feb 16 16:55:30 master.gengzi tailscaled[61285]: dns: [rc=unknown ret=direct]
Feb 16 16:55:30 master.gengzi tailscaled[61285]: dns: using “direct” mode
Feb 16 16:55:30 master.gengzi tailscaled[61285]: dns: using *dns.directManager
Feb 16 16:55:30 master.gengzi tailscaled[61285]: linuxfw: clear iptables: exec: “iptables”: executable file not found in $PATH
Feb 16 16:55:30 master.gengzi tailscaled[61285]: deleting [-j ts-input] in filter/INPUT: running [/usr/sbin/ip6tables -t filter -D IN>
Feb 16 16:55:30 master.gengzi tailscaled[61285]: Try ip6tables -h' or 'ip6tables --help' for more information. Feb 16 16:55:30 master.gengzi tailscaled[61285]: deleting [-j ts-forward] in filter/FORWARD: running [/usr/sbin/ip6tables -t filter -> Feb 16 16:55:30 master.gengzi tailscaled[61285]: Try ip6tables -h’ or ‘ip6tables –help’ for more information.
Feb 16 16:55:30 master.gengzi tailscaled[61285]: deleting [-j ts-postrouting] in nat/POSTROUTING: running [/usr/sbin/ip6tables -t nat>
Feb 16 16:55:30 master.gengzi tailscaled[61285]: Try `ip6tables -h’ or ‘ip6tables –help’ for more information.
Feb 16 16:55:30 master.gengzi tailscaled[61285]: flushing log.
Feb 16 16:55:30 master.gengzi tailscaled[61285]: logger closing down
Feb 16 16:55:31 master.gengzi tailscaled[61322]: logtail started
Feb 16 16:55:31 master.gengzi tailscaled[61322]: Program starting: v1.60.0-tb36943c9b-g99e84774b, Go 1.22.0: []string{“/usr/sbin/tail>
Feb 16 16:55:31 master.gengzi tailscaled[61322]: LogID: aa9012e1f77be7d94108c367ab084dcff77c41539bb39ccd4a956dddbc4cd401
Feb 16 16:55:31 master.gengzi tailscaled[61322]: logpolicy: using system state directory “/var/lib/tailscale”
Feb 16 16:55:31 master.gengzi systemd[1]: Started Tailscale node agent.
Feb 16 16:55:31 master.gengzi tailscaled[61322]: wgengine.NewUserspaceEngine(tun “tailscale0”) …
Feb 16 16:55:31 master.gengzi tailscaled[61322]: dns: [rc=unknown ret=direct]
Feb 16 16:55:31 master.gengzi tailscaled[61322]: dns: using “direct” mode
Feb 16 16:55:31 master.gengzi tailscaled[61322]: dns: using *dns.directManager
Feb 16 16:55:31 master.gengzi tailscaled[61322]: link state: interfaces.State{defaultRoute=eno1 ifs={eno1:[192.168.3.6/24 llu6] eno2:>
Feb 16 16:55:31 master.gengzi tailscaled[61322]: onPortUpdate(port=41641, network=udp6)

超算调试: 根据日志信息显示,tailscaled 服务启动时报错 “linuxfw: clear iptables: exec: “iptables”: executable file not found in $PATH”,表明在执行清除 iptables 规则时找不到 iptables 可执行文件。这可能是因为 iptables 没有安装或者可执行文件路径没有包含在 $PATH 环境变量中。

为了解决这个问题,你可以通过安装 iptables 来修复这个错误。你可以使用以下命令在 CentOS/RHEL 系统上安装 iptables:

sudo yum install iptables

在 Ubuntu/Debian 系统上安装 iptables:

sudo apt-get install iptables

安装完 iptables 后,你可以尝试重新启动 tailscaled 服务来查看是否问题得到解决:

sudo systemctl restart tailscaled

如果问题仍然存在,你可以检查 iptables 可执行文件的路径是否在 $PATH 环境变量中。你可以通过以下命令查看 $PATH 环境变量的值:

echo $PATH

确保 iptables 可执行文件的路径在 $PATH 中,如果不在,可以通过修改环境变量来添加路径:

export PATH=$PATH:/sbin

然后再次尝试重启 tailscaled 服务。这样应该能够解决 iptables 相关的错误导致的问题。

nxtjdc: yum install iptables
Last metadata expiration check: 1:42:08 ago on Sun 10 Mar 2024 01:59:31 PM CST.
Package iptables-1.8.4-17.el8.x86_64 is already installed.
Package iptables-1.8.4-17.el8_4.1.x86_64 is already installed.
Dependencies resolved.
Nothing to do.
Complete!

超算调试: 看起来 iptables 已经安装在系统中,并且没有任何可用的更新。由于 iptables 可能已经安装,但是仍然找不到可执行文件,你可以尝试手动添加可执行文件路径到 $PATH 环境变量中,以确保 tailscaled 服务可以找到 iptables。

你可以使用以下命令将 iptables 可执行文件的路径添加到 $PATH 环境变量中:

export PATH=$PATH:/sbin

然后尝试重新启动 tailscaled 服务:

sudo systemctl restart tailscaled

通过这种方式,tailscaled 服务应该能够找到 iptables 可执行文件并且成功运行。希望这次修改能够解决问题,让 Tailscale 客户端能够连接到本地的 tailscaled 守护进程。

nxtjdc: centos 8系统

超算调试: 在 CentOS 8 系统中,iptables 可执行文件通常位于 /usr/sbin/iptables。你可以通过以下方法将该路径添加到 $PATH 环境变量中:

echo 'export PATH=$PATH:/usr/sbin' >> ~/.bashrc
source ~/.bashrc

这将确保 iptables 可执行文件的路径被永久添加到 $PATH 环境变量中,并且在每次登录后都会生效。

然后,尝试重新启动 tailscaled 服务:

sudo systemctl restart tailscaled

通过这种方式,tailscaled 服务应该能够找到 iptables 可执行文件并且成功运行。希望这次修改能够解决问题,让 Tailscale 客户端能够连接到本地的 tailscaled 守护进程。

nxtjdc: -rwxr-xr-x. 1 root root 3512 Nov 2 2021 iptables-apply
lrwxrwxrwx. 1 root root 17 Nov 2 2021 iptables-restore -> xtables-nft-multi
lrwxrwxrwx. 1 root root 17 Nov 2 2021 iptables-restore-translate -> xtables-nft-multi
lrwxrwxrwx. 1 root root 17 Nov 2 2021 iptables-save -> xtables-nft-multi
lrwxrwxrwx. 1 root root 17 Nov 2 2021 iptables-translate -> xtables-nft-multi
lrwxrwxrwx. 1 root root 17 Nov 2 2021 ip6tables -> xtables-nft-multi
lrwxrwxrwx. 1 root root 17 Nov 2 2021 ip6tables-restore -> xtables-nft-multi
lrwxrwxrwx. 1 root root 17 Nov 2 2021 ip6tables-restore-translate -> xtables-nft-multi
lrwxrwxrwx. 1 root root 17 Nov 2 2021 ip6tables-save -> xtables-nft-multi
lrwxrwxrwx. 1 root root 17 Nov 2 2021 ip6tables-translate -> xtables-nft-multi

超算调试: 根据你提供的输出,看起来 CentOS 8 系统中使用的是 xtables-nft-multi 而不是传统的 iptables。这可能是由于 CentOS 8 默认使用了 nftables 替代了传统的 iptables。

由于 tailscaled 服务需要使用 iptables 进行一些操作,你可以尝试创建一个符号链接将 xtables-nft-multi 链接到 iptables,以便 tailscaled 服务能够找到它。你可以使用以下命令创建符号链接:

sudo ln -s /usr/sbin/xtables-nft-multi /usr/sbin/iptables

然后尝试重新启动 tailscaled 服务:

sudo systemctl restart tailscaled

通过这种方式,tailscaled 服务应该能够找到 xtables-nft-multi 并且成功运行。希望这次修改能够解决问题,让 Tailscale 客户端能够连接到本地的 tailscaled 守护进程。


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。