centos/linux:在非默认网络命名空间中运行 tftpd

centos/linux:在非默认网络命名空间中运行 tftpd

tftpd我想知道是否有人成功地在网络命名空间中启动了(我正在使用tftp-server-5.2-22.el7.x86_64.rpm)?
即,tftpd从默认 NS 开始很简单:

bash# systemctl start tftp
bash# systemctl status tftp
* tftp.service - Tftp Server
   Loaded: loaded (/usr/lib/systemd/system/tftp.service; indirect; vendor preset: disabled)
   Active: active (running) since Mon 2023-08-28 05:32:00 PDT; 3s ago
...

但是,如果我尝试修改其服务单元文件,即这一行:

[Service]
ExecStart=/usr/sbin/in.tftpd -s /var/lib/tftpboot

在命令前面加上ip netns exec ns-red ...或 with nsenter --net=/run/netns/ns-red ...,它永远不会起作用,系统日志会抛出这些错误:

systemd[1]: tftp.service: Got no socket.
systemd[1]: tftp.service: Failed to run 'start' task: Invalid argument
systemd[1]: tftp.service: Failed with result 'resources'.
systemd[1]: Failed to start Tftp Server.

任何帮助是极大的赞赏!

答案1

好吧,在玩了一下 tftp 和服务文件之后,发现解决方案相当简单 -tftp以独立模式(-L-l选项)启动,而不是在xinetd环境中启动。

相关内容