我正在一个使用很多这样的命令的平台上工作:
ssh login@server.com 'curl http://some_server/script.sh | bash'
这对于远程执行脚本来说非常干净和方便,但是,无论如何我都看不到获取脚本的输出/退出代码。任何人都可以找出一些方法来确保脚本已正确执行(从启动 ssh 的主机的角度来看)。
我正在使用 LXC 容器。我的每个容器在 10.0.3.0/24 中都有一个 ip 地址。我希望通过某个端口进入我的主机的数据包被重定向到一个容器,所以我使用以下规则:
iptables -t nat -A PREROUTING -p tcp --dport 3000 -j DNAT --to-destination 10.0.3.4:3000
Run Code Online (Sandbox Code Playgroud)
这允许做(外部数据包)# --> HOST:3000 --> CONTAINER:3000
它工作得很好。但是,当我在一个容器内(不是上一条规则中使用的那个),并且我想访问端口 3000 上的另一台主机(比如 HOST2)时,我的数据包被重定向到我的容器。它确实:
(容器包内)# --> HOST2:3000 --> HOST:3000 --> CONTAINER:3000
而不是(在容器包内)# --> HOST2:3000 --> HOST:3000 --> HOST2:3000
我试图将上面的规则更改为
iptables -t nat -A PREROUTING -s 10.0.3.0/24 -p tcp --dport 3000 -j DNAT --to-destination 10.0.3.4:3000
Run Code Online (Sandbox Code Playgroud)
为了说:如果数据包来自容器,请不要应用该规则,但这不起作用。任何帮助都会很棒,问候
这是我的 iptables 规则:
Chain PREROUTING (policy ACCEPT 154 packets, 29925 bytes)
pkts bytes target prot opt in out source destination …
Run Code Online (Sandbox Code Playgroud)