基础设施:数据中心中的服务器、操作系统 - Debian Squeeze、网络服务器 - Apache 2.2.16
情况:
我们的客户每天都在使用实时服务器,因此无法测试调整和改进。因此,我们希望将实时服务器上的入站 HTTP 流量实时复制到一台或多台远程服务器。流量必须传递到本地 Web 服务器(在本例中为 Apache)和远程服务器。因此,我们可以调整配置并在远程服务器上使用不同/更新的代码进行基准测试并与当前的实时服务器进行比较。目前,网络服务器正在收听大约。由于客户端结构,除了 80 和 443 之外还有 60 个额外的端口。
问题:如何实现对一台或多台远程服务器的复制?
我们已经尝试过:
我的目标是将 docker 容器的访问权限限制为几个公共 IP 地址。是否有一个简单、可重复的过程来实现我的目标?在使用 Docker 的默认选项时只了解 iptables 的基础知识,我发现这非常困难。
我想运行一个容器,使其对公共 Internet 可见,但只允许来自选定主机的连接。我希望设置 REJECT 的默认 INPUT 策略,然后只允许来自我的主机的连接。但是 Docker 的 NAT 规则和链妨碍了我的 INPUT 规则。
鉴于以下假设,有人可以提供一个如何实现我的目标的例子吗?
docker run -d -p 3306:3306 mysql我很高兴将容器仅绑定到本地 ip 地址,但需要有关如何正确设置 iptables 转发规则的说明,以便在 docker 进程和主机重新启动后继续存在。
谢谢!
我有一个带有这些简单规则的防火墙:
iptables -A INPUT -p tcp -s 127.0.0.1/32 --dport 6000 -j ACCEPT
iptables -A INPUT -p tcp -s 192.168.16.20/32 --dport 6000 -j ACCEPT
iptables -A INPUT -p tcp --dport 6000 -j REJECT
Run Code Online (Sandbox Code Playgroud)
现在,假设我像这样使用TCPDUMP:
tcpdump port 6000
Run Code Online (Sandbox Code Playgroud)
我有主机192.168.16.21试图连接到端口6000。
将/应该tcpdump输出一些来自192.168.16.21?
service iptables status在 2 个 CentOS 服务器上运行时,
policy ACCEPT中
Chain INPUT,Chain FORWARD和
Chain OUTPUTpolicy DROP在
Chain INPUT和Chain FORWARD; 而
policy ACCEPT在Chain OUTPUT什么意思policy ACCEPT和policy DROP?
...以及如何从policy ACCEPT变为policy DROP和 从policy DROP变为policy ACCEPT?
我对我正在使用的 HTB 结构有一些疑问。
我的目标是限制本地网络中用户的下载和上传速度。网络的每个用户都有一个个人域列表,其中包含他不能超过的域的上下速度。
这意味着用户 1 可以在 slashdot.org 上的访问权限限制为 8KB 下载和 3KB 上传,用户 2 可以在 slashdot.org 上访问限制为 4KB 和 1KB。
现在我设置了一个很好的 iptables/tc 对,但规模很小,同时使用 2 或 3 个虚拟主机(不幸的是,我无法执行实际大小测试)。
这是我当前的结构(我只会显示 LAN 出口的结构,用于上传的结构只是该结构的“副本”)
连接在接口上的 HTB qdisc(句柄 2:),默认流量类是类 FFFF。
根类 2:1 直接位于 HTB qdisc 下,具有速率和上限下行链路容量。
默认类 2:FFFF 作为 2:1 的子级,速率为 1kbsp,下行容量为 ceil。
然后,当某个域的用户有新的限制时,动态添加其他类,添加新的 tc 类来控制来自其域的下载速度。
现在,这就是我所做的:
新建一个具有唯一id的tc类(取自数据库,不是这里的重点),作为父类2:1,速率值为1bps,ceil值设置为限制下载速度。
下面是 tc 命令:
-------------- BEGIN SCRIPT --------------
DOWNLINK=800
## Setting up the static tc qdisc and class
$tc qdisc add dev $LAN_IFACE root handle 2: htb default …Run Code Online (Sandbox Code Playgroud) 如何在我的 ubuntu 服务器上,在 Iptables 中只允许特定端口上的一个 IP 地址?
谢谢
我想使用 iptables 允许所有流量到特定 ip。
通过添加行尝试:
/sbin/iptables -A INPUT -p tcp -s XXX.XXX.XXX.XXX -j ACCEPT
/sbin/iptables -A OUTPUT -p tcp -s XXX.XXX.XXX.XXX -j ACCEPT
Run Code Online (Sandbox Code Playgroud)
...但仍然无法访问远程 ip (XXX.XXX.XXX.XXX)。
有什么建议吗?
广告中的 tnx!
编辑:根据您的建议,我更改了 iptables。我仍然无法连接到远程服务器。iptables 状态如下所示:
[root@myserver ~]# /etc/init.d/iptables status
Table: nat
Chain PREROUTING (policy ACCEPT)
num target prot opt source destination
Chain POSTROUTING (policy ACCEPT)
num target prot opt source destination
Chain OUTPUT (policy ACCEPT)
num target prot opt source destination
Table: mangle
Chain PREROUTING (policy ACCEPT)
num target prot opt source …Run Code Online (Sandbox Code Playgroud) (Ubuntu 服务器)我正在运行
sudo iptables -A INPUT -s 127.0.0.1 -j ACCEPT
sudo iptables -A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -m limit --limit 4/sec -j ACCEPT
Run Code Online (Sandbox Code Playgroud)
进而
sudo iptables-save
Run Code Online (Sandbox Code Playgroud)
要获得iptables规则的功能,只做上面的命令(不重启iptables)就够了吗?
我正在设置一个 Debian 机器作为 4 个子网的路由器。为此,我在连接 LAN 的 NIC 上定义了 4 个虚拟接口 ( eth1)。
eth1 Link encap:Ethernet HWaddr 94:0c:6d:82:0d:98
inet addr:10.1.1.1 Bcast:10.1.1.255 Mask:255.255.255.0
inet6 addr: fe80::960c:6dff:fe82:d98/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:6026521 errors:0 dropped:0 overruns:0 frame:0
TX packets:35331299 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:673201397 (642.0 MiB) TX bytes:177276932 (169.0 MiB)
Interrupt:19 Base address:0x6000
eth1:0 Link encap:Ethernet HWaddr 94:0c:6d:82:0d:98
inet addr:10.1.2.1 Bcast:10.1.2.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
Interrupt:19 Base address:0x6000
eth1:1 Link encap:Ethernet HWaddr …Run Code Online (Sandbox Code Playgroud) 最新的 Fedora 将 firewalld 作为新的防火墙应用程序。我喜欢旧的 iptables 服务。我想让他们回来,但不知道该怎么做。我试过了 :
systemctl disable firewalld.service
systemctl stop firewalld.service
systemctl enable iptables.service
systemctl enable ip6tables.service
systemctl start iptables.service
systemctl start ip6tables.service
Run Code Online (Sandbox Code Playgroud)
但它不起作用!在 wiki 或 google 上没有找到任何帮助。
禁用 firewalld 工作正常,但是当我尝试启用 iptables.service 时,我得到:
systemctl enable iptables.service
Failed to issue method call: No such file or directory
Run Code Online (Sandbox Code Playgroud)