【发布时间】:2019-12-10 15:30:56
【问题描述】:
我正在尝试在我的 python 脚本中调用以下命令。我正在尝试将规则插入 IP 表。我正在使用子进程来调用它并在需要的地方插入变量,但是我遇到了一个很大的错误。有什么建议吗?
iptables = subprocess.call('iptables -I FORWARD -eth 0 -m '+protocol+' -t'+protocol+'--dport '+port+'-j DNAT --to-destination'+ipAddress)
错误:
Traceback (most recent call last):
File "./port_forward.py", line 42, in <module>
iptables = subprocess.call('iptables -I FORWARD -i eth0 -m '+protocol+' -t'+protocol+'--dport '+port+'-j DNAT --to-destination'+ipAddress)
File "/usr/lib/python2.7/subprocess.py", line 493, in call
return Popen(*popenargs, **kwargs).wait()
File "/usr/lib/python2.7/subprocess.py", line 679, in __init__
errread, errwrite)
File "/usr/lib/python2.7/subprocess.py", line 1259, in _execute_child
raise child_exception
OSError: [Errno 2] No such file or directory
【问题讨论】:
-
一般提示:如果您说遇到错误,请告诉我们错误是什么。您是否以 root 权限运行此脚本?标准用户无法运行 iptables...
-
你需要root才能调用iptables。你的 python 脚本是否以 root 权限运行?
-
恐怕信息不够。我们也需要错误。
-
errorTraceback(最近一次调用最后一次):文件“./port_forward.py”,第 42 行,在
中 iptables = subprocess.call('iptables -I FORWARD -i eth0 -m ' +protocol+' -t'+protocol+'--dport '+port+'-j DNAT --to-destination'+ipAddress) 文件“/usr/lib/python2.7/subprocess.py”,第 493 行,调用返回Popen(*popenargs, **kwargs).wait() 文件“/usr/lib/python2.7/subprocess.py”,第 679 行,在 init 中 errread, errwrite) 文件“/usr/ lib/python2.7/subprocess.py",第 1259 行,在 _execute_child raise child_exception OSError: [Errno 2] No such file or directory