标签: ip

iptables 预路由本地主机

我想使用 iptables 将所有传入流量从某个端口转发到另一个端口。问题是预路由不适用于来自本地主机的流量。本主题提出了一个解决方案:

iptables -t nat -I PREROUTING -p tcp --dport 443 -j REDIRECT --to-ports 8080
iptables -t nat -I OUTPUT -p tcp -d 127.0.0.1 --dport 443 -j REDIRECT --to-ports 8080
Run Code Online (Sandbox Code Playgroud)

该解决方案适用于大多数情况。但是,当我连接到http://myserver:443(其中 myserver 解析为本地计算机上托管的 IP 地址,但不是 127.0.0.1)时,它似乎绕过了这两个规则。

有没有办法也捕获从本地计算机发送到 eth0 IP 地址的转发请求?

linux ubuntu firewall ip iptables

5
推荐指数
1
解决办法
4401
查看次数

如何更改特定 IP 地址的 ssh 端口?

我在使用腻子时遇到了麻烦,所以我更喜欢使用 shell (linux) 通过 ssh 访问服务器,我的 ip 地址更改了 ssh 的端口是 6091,所以无论如何都可以通过命令通过 ssh 访问服务器

ssh root@myipaddress
Run Code Online (Sandbox Code Playgroud)

因为我有很多服务器的默认 ssh 端口是 22,所以我只想将端口更改为特定的 ip 地址。

ssh ip putty dedicated-server

5
推荐指数
2
解决办法
3万
查看次数

我应该要求系统管理员打开什么 IP 范围才能让 S3 工作?

我为 Raspberry Pi 编写了一些程序,一些小公司对此表现出兴趣。我将预配置的 Raspberry Pi:s 出售给他们,并在他们身上安装了我的程序,它适用于除其中一家公司之外的所有人。他们有非常严格的政策,这是可以理解的。

我的程序使用亚马逊的 S3 服务。我已经给出了关于需要打开哪些端口和服务才能使程序运行、访问 S3 的说明,并且系统管理员对所有事情都说好,除了一件事:他们不能允许整个端口 443互联网。他们说,我需要指定 IP 范围。

我一直在做一些研究,似乎 S3 需要很大的 IP 范围才能工作,而且所需的 IP 地址不断增加。我发现的大多数文档都清楚地说明“需要打开端口 80 和端口 443”,并且 S3 服务器的 IP 地址各不相同。

你对我的建议有什么建议吗?是否有可以按域名 (*.amazonaws.com) 过滤的防火墙?或者还有什么我可以做的吗?是否有定期更新的 S3 官方 IP 范围列表?

您的任何帮助将不胜感激。谢谢。

firewall ip amazon-s3

5
推荐指数
1
解决办法
8972
查看次数

MTU + ~798 字节的 POST 丢失

我有一个非常奇怪的问题,某些数据包没有到达目标主机。当我们传输比 MTU 稍大的 POST 时,就会发生这种情况。我们可以用这个脚本重现它:

#!/usr/bin/python

import urllib2

magic_length = 2297
logurl = 'http://www.example.nl/'
data = (magic_length - len(logurl)) * 'X'
headers = {'content-type': 'application/x-www-form-urlencoded', 'User-Agent': 'Fake'}
request = urllib2.Request(logurl, data, headers)                                        
handler = urllib2.build_opener(urllib2.HTTPHandler())                                   
answer = handler.open(request, timeout=5)
Run Code Online (Sandbox Code Playgroud)

发送方没有收到 ACK 并进行重传。接收方永远不会看到它。

这取决于您运行脚本的位置以及 POST 的位置。我的家庭连接失败了(顺便说一句,几个月以来我遇到了 AJAX POST 无法通过的问题;因为我有一个新的调制解调器)。

如果我将发送机器的 MTU 减少 100,它会再次工作。但是,如果我也减少magic_length100,它会再次失败。第一个理论是我的 ADSL 层(如 PPPoA)添加了标头并导致数据包被错误地拆分,但当时似乎并非如此。

也许 MTU 发现出了问题。有些人可能会阻止所有ICMP?这是从我家到 google 的 traceroute 的第一部分:

traceroute to google.com (74.125.133.102), 30 hops max, 60 byte packets
 1  dsldevice.lan (192.168.2.254)  0.453 ms  0.547 …
Run Code Online (Sandbox Code Playgroud)

networking ip tcp mtu

5
推荐指数
1
解决办法
341
查看次数

如何在 ESXi 虚拟机上获取公共 IP?

我们有一个带有托管服务提供商的专用服务器。我们正在运行 ESXi 6.0。服务器有一个当前用于管理界面的公共 IP。提供商还为我们分配了一个 /29 块,以便我们的 VM 可以拥有公共 IP。我们只能使用 1 个物理 NIC,我认为这会导致一些问题。

他们告诉我们,该块中 IP 的默认网关应设置为 ESXi 服务器的 IP。每当我们尝试配置它时,VM 都会抱怨说网关位于不同的子网中,而事实确实如此。

他们表示,由于他们的网络配置方式,我们需要通过 ESXi 服务器的 IP 路由他们分配给我们的块中的任何 IP。据我所知,ESXi 不支持路由,因此无法实现。

我们问他们是否可以将这个块(甚至单个 IP)分配给服务器,以便它们与 ESXi IP 相同,以便我们可以在 VM 上使用它们,但他们告诉我们,他们的网络设置不允许为了这。

理想情况下,我们希望能够将这些公共 IP 分配给我们的 VM,以便它们可以直接从 Internet 访问。有没有办法做到这一点?我们错过了什么吗?

如果上述方法不可行,有没有办法让我们进行端口转发/其他任何操作,以便我们可以从 Internet 访问我们的 VM?

我们没有更改 ESXi 中的任何网络配置,因此我们仍然只有一个 vSwtich,同时连接了管理网络和 VM 网络。此 vSwitch 连接到服务器上的单个物理 NIC,所有 IP 都分配给该物理 NIC。

如果需要,很乐意提供任何其他信息。

routing ip virtual-machines address vmware-esxi

5
推荐指数
1
解决办法
1万
查看次数

有些访问者无法访问我的网站

我从西班牙、美国和法国的不同客户那里收到一些报告,称他们无法访问我的网站https://www.ultreyatours.com。他们收到一个 ERR_NAME_NOT_RESOLVED 错误,说找不到服务器。

就我个人而言,我没有遇到任何错误,大多数访问者也没有遇到过,但是我的一位客户非常友好地将他们的 traceroute 输出发送给我 - 下面。他在浏览器中使用 Google DNS。

我有一个共享 IP 地址,这让我认为它被 ISP 阻止了,但事实并非如此。我已经联系了 Telefonica(这是我的客户访问的最后一个服务器),询问他们是否阻止了我的 IP 地址以防万一,但已经 9 天了,到目前为止没有任何回应。

我尝试过的所有网站测试程序似乎都找不到错误。我发现的唯一危险信号是我的 MX 记录指向 CNAME。但这是我的主人Go Daddy的标准邮件设置。

谁能告诉我他们是否无法访问该网站并将跟踪路由发送给我,或者您对为什么会发生这种情况有任何建议吗?我应该换主机以防万一吗?

traceroute to ultreyatours.com (160.153.74.24), 64 hops max, 52 byte packets
 1  192.168.1.1 (192.168.1.1)  7.887 ms  2.594 ms  2.378 ms
 2  192.168.144.1 (192.168.144.1)  51.844 ms  42.309 ms  41.189 ms
 3  * * *
 4  26.red-80-58-89.staticip.rima-tde.net (80.58.89.26)  55.877 ms
    65.red-81-46-3.staticip.rima-tde.net (81.46.3.65)  54.211 ms
    26.red-80-58-89.staticip.rima-tde.net (80.58.89.26)  54.896 ms
 5  216.184.113.116.nuevatel.com (216.184.113.116)  51.841 ms …
Run Code Online (Sandbox Code Playgroud)

ip dns-hosting godaddy cname-record traceroute

5
推荐指数
1
解决办法
872
查看次数

无法在 Hetzner VPS 上使用外部 IP

我最近在 Hetzner 上更改了我的虚拟服务器模型。新的有一个外部 IPv4 地址,可以从 Internet 访问它(应该如此)。但是我不能在配置中使用这个外部 IP:iptables规则无效,openvpn服务器不能使用这个 IP 在任何端口上绑定侦听器等等。我172.31.x.x在ifconfig输出中找到了一个“本地”IP 地址 ( ) ,如果我在配置中使用它,一切都像魅力一样。

在我的旧服务器上,我可以在任何地方使用它。所以我只是想知道:为什么外部 IP 对我的新服务器不起作用?操作系统是Ubuntu 15.04

ubuntu vps ip hetzner

5
推荐指数
1
解决办法
4698
查看次数

nginx 拒绝 ip - 错误日志中的规则禁止访问

我们阻止了一些恶意机器人,它们无情地尝试通过 NGINX 中的“拒绝”指令访问我们的网站。我们无法在防火墙处阻止它,因为我们使用了无法从云提供商处访问的负载均衡器。

该指令工作正常,但我们的 nginx error.log 文件被这些请求淹没。我们让它们轮换,但对我们来说很糟糕,因为有太多的请求,我们实际上无法使用错误日志来查看是否有任何我们应该注意的真正错误。

所以有几个问题:

  1. 我们如何防止 nginx 将这些错误发送到 error.log。
  2. 为什么 nginx 认为这是一个错误?如果您指定了拒绝指令并且 ip 被拒绝,从 http 的角度来看,这是一个成功的 403 响应,根本不应被视为错误(imo)。

nginx ip deny http-status-code-403

5
推荐指数
1
解决办法
3778
查看次数

从 nginx 访问日志中排除 IP

如何从访问日志中排除某些IP地址?这是我的配置:

server {
listen 443 ssl;
[...]
access_log /var/www/web/log/access.log;
error_log /var/www/web/log/error.log;

location / { 
try_files $uri $uri/ /index.php?$args; 
if ($remote_addr = "80.80.80.80") { 
access_log off;
}

location ~ \.php$ { 
include snippets/fastcgi-php.conf; 
fastcgi_pass unix:/var/run/php5-fpm.sock; 
} 
[...] 
}
Run Code Online (Sandbox Code Playgroud)

我尝试了这个:

map $remote_addr $log_ip { 
"80.80.80.80" 0; 
default 1; 
} 
server { 
[...]
access_log /var/www/web/access.log main if=$log_ip; 
[...]
}
Run Code Online (Sandbox Code Playgroud)

两者都不起作用。我的发行版是 Debian 8,nginx 版本是 1.9.10,从 backport 存储库安装。

非常感谢您的建议

configuration nginx ip logging

5
推荐指数
1
解决办法
3329
查看次数

pfSense + NAT 和 nginx - 日志中未显示真实 IP

我当前的设置包括 pfSense 防火墙,该防火墙将公共 WAN 流量转发到 NAT 内部 IP。

例子:

  • 104.12.134.12:80 (WAN IP) 端口将所有流量转发到 192.168.1.104:80

这按预期工作,流量正确转发。我遇到的问题是我在 Nginx 日志中看到了本地 IP(即 pfSense 路由器 IP,在本例中为 192.168.1.1)。

我已经搜索过很多文章都建议使用 real_ip 模块,并设置 X-Forwarded-For 标头,但这不起作用。

笔记:

  • 我的路由器的 IP 与端口转发的 IP 不同(这是故意的)。
  • 我没有 104.12.134.12,这只是一个例子。

nginx nat ip port-forwarding pfsense

5
推荐指数
1
解决办法
2198
查看次数