linux - 如何在ubuntu server 14.04 LTS 上配置多个网卡并连接路由器?

标签 linux proxy firewall router ubuntu-server

我有一个 HP 硬盘服务器,我在上面安装了 Ubuntu 服务器 14.04 LTS。服务器有两个以太网卡。 我安装了 Squid 代理服务器,并在我的 ubuntu 服务器上使用 iptables 作为防火墙。 现在我想把我的服务器放在路由器和交换机之间。这是因为我想让大家通过代理服务器来过滤一些网站。

我在ubuntu服务器上配置两 block 网卡遇到了一些困难。 它有两个接口(interface) em1 和 em2,我想为其分配静态 IP 地址。这是我到目前为止的配置:

主要网络接口(interface)

auto em1
iface em1 inet static
address 192.168.1.30
netmask 255.255.255.0
gateway 192.168.1.2
network 192.168.1.0
broadcast 192.168.1.255

辅助网络接口(interface)

auto em2
iface em2 inet static
address 192.168.1.31
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255

我读到一些帖子说第二个接口(interface)中不应该有网关条目,以便操作系统知道要使用哪个接口(interface)。

我目前的网络架构如下:

FSI --> 我的 CISCO 路由器 (192.168.1.1) --> 我的 Ubuntu 服务器(包含两个 NIC 卡并运行 squid 代理和 iptables 防火墙) --> 我的交换机 --> 一些笔记本电脑

问题是笔记本电脑无法连接到互联网。我不明白为什么。我禁用了防火墙和代理,但仍然无法连接。

我应该在两个网卡之间配置一些路由规则还是应该使用 iptables 的 FORWARD 链?我该如何解决这个问题?

感谢您的帮助。

最佳答案

我的两个网络接口(interface)需要位于不同的网络/子网 IP 范围内。因此,例如,我在 192.168.1.2 上有 em1,在 192.168.2.1 上有 em2。然后我将 em1 连接到 router 并将 em2 连接到 switch。我给了我的笔记本电脑 192.168.2.xxx IP(服务器的 IP 除外)。理想情况下,我在 Ubuntu 服务器上设置了一个 DHCP 服务器来将 IP 分配给客户端,这样我就不必手动设置它们了。

然后我使用 FORWARD 链在 iptables 规则中设置转发(除非我想强制所有流量都通过代理,然后我只设置代理)。

工作配置如下:

# The primary network interface
auto em1  
iface em1 inet static  
address 192.168.1.2  
netmask 255.255.255.0  
gateway 192.168.1.2  
network 192.168.1.0  
broadcast 192.168.1.255  


# The secondary network interface
auto em2
iface em2 inet static
address 192.168.2.1
network 192.168.2.0
netmask 255.255.255.0
broadcast 192.168.2.255

和iptables如下:

-P INPUT ACCEPT
-P FORWARD DROP
-P OUTPUT ACCEPT
-A FORWARD -i em1 -o em2 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i em2 -o em1 -j ACCEPT
-A FORWARD -j LOG

配置笔记本电脑时,请记住网关应该是服务器的IP:192.168.2.1,这是我服务器的IP。

关于linux - 如何在ubuntu server 14.04 LTS 上配置多个网卡并连接路由器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27816918/

相关文章:

python - 如何使用 python 通过 (tor) socks 代理发出 HTTP 请求?

angular - GCP 中定义的防火墙规则但无法访问 Angular 默认应用程序

git - VS 2015 + bower : Does not work behind firewall

c++ - 如何正确使用 INetSharingManager?

linux - docker.service 的 docker 作业失败,因为控制进程以错误代码退出

php - Linux (centos) 上的 Codeigniter 类和文件名区分大小写

无法安装 gedit 插件

Delphi:EmbeddedWB 奇怪的代理错误?

linux - CMake:链接静态库与文件名中的版本

PHP:有没有办法改变请求地址?