Я установил Solr (v 4.2.1) для одного из моих веб-сайтов, и у меня возникли проблемы с защитой панели администратора. Я запускаю Solr с Jetty. Я не использовал 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 -
Спасибо
Из ifconfig
На выходе ясно, что ваш сервер вообще не имеет реальных (т. е. общедоступных адресов, не относящихся к RFC1918). Но ваш вопрос касается публичного адреса, по которому можно получить доступ к этому серверу. Это означает, что перед вашим сервером есть что-то, преобразовывающее частный адрес в реальный адрес (может быть, это облачный сервер Amazon?).
Учитывая это, вы не можете достичь того, чего хотите, привязав к частному адресу и предполагая, что никто не может попасть туда через общедоступный адрес. Вам нужно будет решить эту проблему либо локально, либо iptables
логика, чтобы предотвратить подключение «нелокальных» адресов (и вам необходимо определить «нелокальные») к порту 8983 или к устройству NAT, которое выполняет общедоступное и частное сопоставление.