我已经为我的一个网站设置了Solr (v4.2.1),而且我在使用Jetty运行Solr时遇到了保护管理面板的问题。我没有使用tomcat,我已经编辑了示例/etc/jetty.xml并修改了主机值以读取
<Call name="addConnector">
<Arg>
<New class="org.eclipse.jetty.server.bio.SocketConnector">
<Set name="host"><SystemProperty name="jetty.host" default="10.100.202.42"/></Set>
<Set name="port"><SystemProperty name="jetty.port" default="8983"/></Set>
<Set name="maxIdleTime">50000</Set>
<Set name="lowResourceMaxIdleTime">1500</Set>
<Set name="statsOn">false</Set>
</New>
</Arg>
</Call>
我启动服务器,它绑定到
*ffff:10.100.202.42:8983
然而,我能够访问管理面板使用网站的外部IP。我是不是遗漏了什么?
ifconfig -a的输出
eth0 Link encap:Ethernet HWaddr 00:50:56:84:00:02
inet addr:10.100.202.42 Bcast:10.255.255.255 Mask:255.255.0.0
inet6 addr: fe80::250:56ff:fe84:2/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:546942285 errors:0 dropped:0 overruns:0 frame:0
TX packets:482684266 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:80045331498 (74.5 GiB) TX bytes:184397661148 (171.7 GiB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:230200 errors:0 dropped:0 overruns:0 frame:0
TX packets:230200 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:335195301 (319.6 MiB) TX bytes:335195301 (319.6 MiB)
和
netstat -apn|grep 8983
tcp 0 0 ::ffff:10.100.202.42:8983 :::* LISTEN 17133/java
tcp 0 0 ::ffff:10.100.202.42:8983 ::ffff:10.100.202.44:36223 TIME_WAIT -
tcp 0 0 ::ffff:10.100.202.42:8983 ::ffff:10.100.202.44:35096 TIME_WAIT -
谢谢
发布于 2013-04-17 11:10:17
从ifconfig
输出中可以清楚地看到,您的服务器根本没有真正的地址(即,可公开路由的、非non 1918地址)。但是,您的问题引用了可以访问此服务器的公共地址。这意味着您的服务器前面有一些东西-- NATting --真正地址的私有地址(这可能是amazon服务器吗?)
考虑到这一点,你无法通过绑定到私有地址并假设没有人能够通过公共地址到达目标来实现您想要的目标。您需要通过一些iptables
逻辑在本地解决这个问题,以防止“非本地”地址(并且需要定义“非本地”地址)连接到端口8983,或者在执行公共-私有映射的NAT设备上。
https://serverfault.com/questions/499404
复制相似问题