Stack Overflow Careers 提供如下服务:
user -> internet -> our fw -> nginx -> haproxy -> web farm
Run Code Online (Sandbox Code Playgroud)
在正常操作期间,nginx 接收 HTTP 请求,执行它的操作,并将请求移交给绑定到同一个框上的环回地址 (127.0.0.1) 的 haproxy 实例。
前几天为了进行一些故障排除,我将 haproxy 实例移到了运行 nginx 的同一接口上。这立即为所有请求增加了 100 毫秒的延迟。这个接口并不是真正的物理接口,而是一个鲤鱼接口。
谁能向我解释为什么会这样?可能与数据包队列争用?或者环回总是更快,因为它是“软”的?我在这里缺少一些基本的东西,我希望有人会善意地教育我。
我们需要安全地向我们的客户提供文件。我们希望传输被加密,用户应该需要用户名/密码,并且他们应该能够通过 web、ftp/sftp 和 curl 访问他们的文件。
显而易见的想法是使用 openssh 及其 sftp 服务器。但是,我不知道如何为 sftp 服务器提供 Web 界面。
换句话说,虽然大多数客户将使用自动脚本来获取他们的文件,但他们可能偶尔需要从网页手动获取文件(这意味着他们需要手动输入他们的用户/密码)
有任何想法吗?
编辑:抱歉,忘了提及我们打算在 linux 服务器上提供这些文件
对于这个公然的新手问题,我深表歉意,但我想以“正确的方式”来做这件事,而不仅仅是在它似乎有效之前就胡说八道,而且我拥有的文档似乎没有解决这个问题。
目前,我正在使用的 Debian Linux 机器具有以下 /etc/network/interfaces 文件:
auto lo
iface lo inet loopback
auto bond0
iface bond0 inet dhcp
pre-up modprobe bonding mode=active-backup miimon=100 primary=eth0
pre-up ip link set bond0 up
pre-up /sbin/ifenslave bond0 eth0
pre-up /sbin/ifenslave bond0 eth1
Run Code Online (Sandbox Code Playgroud)
上面的工作正常,并且主要做我想要的 - 在启动时,盒子出现并且两个以太网插孔用于故障转移/冗余(即盒子在工作时使用第一个插孔进行通信,否则它使用第二个插孔)。
但是,出于我的目的,我不想使用 IPv4 或 DHCP。我希望盒子只使用盒子的 IPv6 自分配地址(即 fe80::whatever:it:is)而不使用其他 IP 地址(嗯......环回可以)来提出 bond0。指定这个的正确方法是什么?我应该将“iface bond0 inet dhcp”更改为“iface bond0 inet6”吗?完全删除那条线?还有什么?理想情况下,我希望能够在多个盒子上使用完全相同的文件,而无需为每个盒子修改它,顺便说一句。
我们在 CentOS 上的 eth0 上配置了几个虚拟接口,它们似乎时不时地突然出现故障。现在在查看日志文件后,我发现显然 ntpd 删除了所有 eth0 接口,而 dhclient 会自动将 eth0 备份。然而,虚拟界面保持关闭,导致我们的几个网站无法访问。
有人可以向我解释为什么 ntpd 删除接口吗?可以/应该关闭它,还是可以/应该我配置 dhclient 以自动恢复虚拟接口?
编辑//我应该发布的日志文件:
Nov 12 13:10:28 raptor dhclient[20048]: DHCPREQUEST on eth0 to 255.255.255.255 port 67 (xid=0x6a825e97)
Nov 12 13:10:42 raptor dhclient[20048]: DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 8 (xid=0x24554092)
Nov 12 13:10:42 raptor dhclient[20048]: DHCPOFFER from 96.126.108.78
Nov 12 13:10:42 raptor dhclient[20048]: DHCPREQUEST on eth0 to 255.255.255.255 port 67 (xid=0x24554092)
Nov 12 13:10:42 raptor dhclient[20048]: DHCPACK from 96.126.108.78 (xid=0x24554092)
Nov 12 13:10:42 …Run Code Online (Sandbox Code Playgroud) 我有一个网络问题,其中源 MAC 与我的主机的源 MAC 之一匹配的帧到达主机 - 明显的重复 MAC、循环或其他 L2 问题。
我相信这是这种情况,因为我的 linux 网桥的 MAC 表(CAM 表)将本地 MAC(用于托管虚拟机)注册为在上游端口上,并且内核日志显示错误:
bridgename: received packet on bond0.2222 with own address as source address
Run Code Online (Sandbox Code Playgroud)
我想获得有关这些“流氓”数据包/帧的更多详细信息,但我不知道如何将它们归零。使用 tcpdump 您可以过滤特定的源 MAC( 'ether src MAC' ),但这是基于帧中的字节 - 而不是帧是“发送”还是“接收”。我们通常假设带有源 MAC 的帧意味着我们将其发送出去,但如果接收到重复的帧,则过滤器的内容看起来完全相同。
如何观察在数据包捕获中是接收帧还是发送帧?
我正在尝试在 Ubuntu(服务器版)9.10 中设置两个网络适配器。一个用于公共互联网,另一个用于私有 LAN。
在安装过程中,我被要求选择一个主网络适配器(eth0 或 eth1)。我选择了 eth0,在 的内容中向安装程序提供了下面列出的详细信息/etc/network/interfaces,然后继续。过去几天我一直在使用具有这些设置的此适配器,一切都很好。
今天,我决定是时候设置本地适配器了。我编辑/etc/network/interfaces以添加 eth1 的详细信息(见下文),并使用sudo /etc/init.d/networking restart.
此后,尝试使用其外部 IP 地址 ping 机器失败,但我可以 ping 其本地 IP 地址。
如果我使用 关闭 eth1 sudo ifdown eth1,我可以再次通过其外部 IP 地址成功 ping 机器(但显然不是其内部 IP 地址)。恢复 eth1 使我们回到原来的问题状态:外部 IP 不工作,内部 IP 工作。
这是我的/etc/network/interfaces(我已经删除了外部 IP 信息,但这些设置从工作时起没有改变)
rob@rhea:~$ cat /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The …Run Code Online (Sandbox Code Playgroud) 这可能是一个不寻常的请求:我试图让 Debian Linux 机器在启动时始终给自己分配一个自分配的 IP 地址(即 169.254.xy)。特别是,即使 LAN 上存在 DHCP 服务器,我也希望它这样做。也就是说,它应该不是从DHCP服务器请求IP地址。
从我在“man interfaces”文本中看到的,有一个“manual”选项和一个“dhcp”选项。手动分配是行不通的,因为我需要多个盒子在同一个 LAN 上工作而不需要任何手动配置......而“dhcp”可以做我想要的,但前提是 LAN 上没有 DHCP 服务器。(一个要求是这些盒子的功能不应受到 DHCP 服务器存在与否的影响)。
有什么技巧可以用来获得这种行为吗?
编辑:通过“无手动配置”,我的意思是我应该能够将这个盒子(无头)带到任何地方的任何局域网,插入以太网电缆,让它做它的事情。每次移动到不同的 LAN 时,我都不必通过 ssh 连接到该框并编辑文件以使其正常工作。
我的 HP Proliant DL 360 G4p 服务器出现了一个奇怪的问题。它有两个千兆以太网接口,但我只能调出其中一个。这让我开始害怕,这就是我转向这里的原因。我正在运行 x64 ubuntu 11.10 服务器版本。
lshw -c network 显示第二个接口被禁用。我不知道为什么要启用它。
$ sudo lshw -c network
*-network:0
description: Ethernet interface
product: NetXtreme BCM5704 Gigabit Ethernet
vendor: Broadcom Corporation
physical id: 2
bus info: pci@0000:02:02.0
logical name: eth0
version: 10
serial: 00:18:71:e3:6d:26
size: 100Mbit/s
capacity: 1Gbit/s
width: 64 bits
clock: 66MHz
capabilities: pcix pm vpd msi bus_master cap_list ethernet physical tp 10bt 10bt-fd 100bt 100bt-fd 1000bt 1000bt-fd autonegotiation
configuration: autonegotiation=on broadcast=yes driver=tg3 driverversion=3.119 duplex=full firmware=5704-v3.27b, ASFIPMIc v2.36 …Run Code Online (Sandbox Code Playgroud) 过去几个月我在服务器上安装了 Ubuntu 12.04,一切正常。昨晚我做了一个aptitude update && aptitude safe-upgrade引入所有最新安全更改的操作,现在当我启动服务器时没有创建 lo 设备。
它正确地调出物理以太网接口,我可以在这些接口上ping进出机器,但没有任何东西可以连接到localhost或上的任何东西127.0.0.1。
ifconfig仅列出eth0和eth1。
lo根本没有。
以下是 /etc/network/interfaces 的内容:
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
#NetworkManager#iface eth0 inet dhcp
Run Code Online (Sandbox Code Playgroud)
我应该在哪里寻找诊断和修复?
谢谢!
我的问题很简单。
是否可以使用完全相同的端口但在同一服务器上使用相同网络接口的不同 IP 上运行两个不同的游戏服务器?
每个 IP 地址是否都有自己的端口池,还是仅限于机器的网络接口?
interface ×10
networking ×5
linux ×3
ubuntu ×2
debian ×1
dhcp ×1
freebsd ×1
ipv6 ×1
loopback ×1
ntpd ×1
pcap ×1
performance ×1
sftp ×1
tcpdump ×1
ubuntu-12.04 ×1
ubuntu-9.10 ×1
web ×1