我目前已ipv4.ip_forward启用在多个接口之间路由数据包。
我现在将系统扩展到 8 个接口,但我想限制接口/地址之间的路由。
一种选择是使用firewalld,但我将其部署在较旧版本的 RH 上,因此将通过iptables.
我在配置 iptables 时遇到了麻烦:一些客户端向服务器发送消息。我希望主机服务器在本地处理消息(主机 A,正常情况下),但另外对于每条消息(tcp 数据包)将数据包的副本发送到另一台主机(主机 B,运行服务器的修改版本,我想看看相同消息的行为如何,以便我可以比较两台服务器)。应该用iptables来完成。我已尝试使用以下命令。这些将数据包发送到 B,但主机 A 不处理消息(应该由第二个命令完成?)。
iptables -t nat -A PREROUTING -p tcp --dport 31090 -j DNAT --to-destination IP_HOST_B:32090
iptables -t nat -A POSTROUTING -p tcp --dport 32090 -j SNAT --to-source IP_HOST_A:31090
Run Code Online (Sandbox Code Playgroud)
我在配置中遗漏了什么来实现我的目标?
谢谢你。
这个问题与什么是内核 ip 转发中的答案和评论有关?
来自@LawrenceC
帖子1:
因此,在上面的示例中,如果您在 NIC 2 上有 Internet 连接,您可以将 NIC 2 设置为默认路由,然后来自 NIC 1 的任何流量都不会发往 192.168.2.0/24 上的某些内容通过网卡 2。
还有post2:
面向互联网的接口(每个上面的 NIC 1)需要在链上的 iptables POSTROUTING 中的 MASQUERADE 规则来做到这一点。参见 revsys.com/writings/quicktips/nat.html
在http://www.revsys.com/writings/quicktips/nat.html它说:
然后,您需要配置 iptables 以将来自内部网络 /dev/eth1 上的数据包转发到 /dev/eth0 上的外部网络。
Run Code Online (Sandbox Code Playgroud)/sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE /sbin/iptables -A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT /sbin/iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
为什么我会使用FORWARD(根据POST2)如果前已经仅通过设置完成ip_forward …
我这样做unzip my.zip,如果文件已经存在,它会询问replace myfile.ext [y]es, [n]o, [A]ll, [N]one, [r]ename:
当命令提示输入时,如何强制输入?我知道unzip可能有强制标志,但我有兴趣传递输入。
假设我有两台服务器:
-->服务器A有IP XXX.XXX.XXX.XXX
-->服务器B有IP YYY.YYY.YYY.YYY
我想要的是将流量从服务器 A(端口 80)重定向到服务器 B(端口 80)。
一种简单的方法是将以下规则与 iptables 放在服务器 A 中:
iptables -t nat -A PREROUTING -p tcp --dport port -j DNAT --to-destination server B:80
Run Code Online (Sandbox Code Playgroud)
但是,这个简单的规则不起作用。我们必须添加以下规则:
iptables -t nat -A POSTROUTING -j MASQUERADE
Run Code Online (Sandbox Code Playgroud)
为什么这样?为什么我们需要添加 POSTROUTING 规则?PREROUTING之后,数据包一定会自动去服务器B吧?
我正在调查我们的 BIND 的配置,但无法弄清楚它是如何知道它是下一个名称服务器来请求某个他不是授权服务器的域...
例如,主域是“workgroup.lan”
查找dig www.google.com
回答
;; 问题部分:
;www.google.com。在一个;; 回答部分:
[...]
;; 权威部分:
google.com。87465 在 NS ns1.google.com。
[...]
;; 查询时间:4毫秒
;;服务器:127.0.0.1#53(127.0.0.1)
;; 时间:2012 年 8 月 28 日星期二 15:56:08
;; 味精大小接收:220
但是谁/什么让他去询问其他名称服务器?或者这是默认行为?
它可能与负责包含根名称服务器 IP 的“.”-(根-)区域的“root.hint”文件有关吗?
我正在为路由器编译内核。我知道一种在现有 Linux 系统中启用 IP 转发的方法。在编译时,CONFIG_IP_FORWARD据说做同样的任务。
我正在使用基于 GTK 的内核配置工具 ( gconfig)配置 vanilla 内核的 3.12.14 版。但是,我在任何地方都看不到此选项。最近的内核中是否有备用配置选项,还是我遗漏了什么?
在远程服务器上工作 (A) 我想使用我的本地 SSH 密钥访问另一台不受我控制的服务器 (B) 上的存储库。
一般来说,这就像一个魅力。
我在远程服务器 (A) 上以 myUsername 身份登录,并且可以很好地访问 B 上的存储库。
问题是,有些任务(作曲家更新)需要由 (A) 上的另一个用户执行。
该用户不是管理员,执行脚本的文件夹是他的,只能由他而不是整个组写入,因此我不能将所有文件夹都修改为 777、775 或其他内容;)
问题是,当我想用以下方式执行脚本时:
sudo -u another_user composer update
果然没有找到任何密钥,因为它们不会为此用户转发。
此外,“another_user”的外壳设置为 bin/false 使事情进一步复杂化!!!
这个问题有方法解决吗?
总结一下:我想通过我自己的远程服务器使用我的本地 ssh-keys 通过我自己的远程服务器访问另一个远程服务器 sudo -u another_user ...
如果有更多经验的人可以启发我,那就太好了!
编辑:我也试过这个:http : //mybrainhurts.com/blog/2012/05/git-sudo-local-ssh-keys.html但我想它不会工作,因为另一个用户没有外壳:(
我netfilter-persistent用来管理防火墙。
我想使用伪装(例如,或另一个)共享两个接口之间的连接。当我通过调用iptables它来运行这些操作时。
但是,如果我尝试更新存储在/etc/iptables/rules.v4添加这样一行的防火墙规则:
-t nat -A POSTROUTING -o wlan0 -j MASQUERADE
Run Code Online (Sandbox Code Playgroud)
以-tmake开头的行netfilter-persistent无法运行且防火墙未更新:
Nov 16 11:51:32 helena systemd[1]: netfilter-persistent.service: Main process exited, code=exited, status=1/FAILURE
Nov 16 11:51:32 helena systemd[1]: Failed to start netfilter persistent configuration.
Run Code Online (Sandbox Code Playgroud)
所以我想知道是否可以使用netfilter-persistent或存储这种规则
iptables connection-sharing forwarding iptables-persistent netfilter
我已经建立了一个反向 ssh 隧道,进入到aws服务器的受限网络,即访问它,我 ssh 进入aws服务器,然后从那里我可以通过某个自定义端口访问受限网络中的机器。
在这个受限网络上,有些设备可以通过 Web 浏览器进行配置。
我相信我可以做一些事情,比如ssh -R 8080:deviceIP:80 user@aws将它转发到aws机器,但我仍然无法访问它(除了通过非常慢的远程 X 之外)。如何通过管道deviceIP:80连接到家里的浏览器aws?
我已经尝试了上面的 ssh 命令,然后将我家用电脑上的浏览器定向到aws:8080但没有加载任何页面......
如何将本地端口转发到远程主机/端口?
我尝试过使用:
sudo iptables -t nat -A PREROUTING -p tcp --dport <PORT> -j DNAT --to-destination <DESTINATION_SERVER>:<DESTINATION_PORT>
Run Code Online (Sandbox Code Playgroud) 我在 VMWare 中安装了 Debian 10。这台 Debian 机器必须作为网关/路由器机器运行。
为了在 LAN 和 WAN 接口之间启用 ip 转发,我将 /proc/sys/net/ipv4/ip_forward 中的 nano 值从 编辑0为1。
重启机器后,该值自动恢复为原来的值0。
有谁知道是什么原因造成的以及我如何永久存储该值1?