2017-03-26 12 views
2

Azure의 Ubuntu VM에서 실행중인 Blazegraph 서버에 원격으로 액세스하려고합니다. 그래서 공용 IP 주소로 서버에 액세스하려고합니다. 51.123.45.234:9999. 나는 포트 9999로 들어오는 트래픽을 허용하도록 하늘빛의 방화벽 설정을 변경하지만 현재 나는 단지로 서버에 액세스 할 수 있습니다 : I는 서버에 연결할 때Blazegraph 서버에 대한 원격 액세스는 어떻게 설정합니까?

curl 127.0.0.1:9999 

또는 SSH 쉘에서

curl localhost:9999 

을 . 연결된 ssh 쉘에서 서버의 IP를 시도 할 때 서버와도 연결할 수 없습니다.

ifconfig 
eth0 Link encap:Ethernet HWaddr 00:0d:3a:28:cd:60 
     inet addr:10.0.0.4 Bcast:10.0.0.255 Mask:255.255.255.0 
     inet6 addr: fe80::20d:3aff:fe28:cd60/64 Scope:Link 
     UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 
     RX packets:208531 errors:0 dropped:328 overruns:0 frame:0 
     TX packets:178597 errors:0 dropped:0 overruns:0 carrier:0 
     collisions:0 txqueuelen:1000 
     RX bytes:170613969 (170.6 MB) TX bytes:28500224 (28.5 MB) 

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:65536 Metric:1 
     RX packets:6387 errors:0 dropped:0 overruns:0 frame:0 
     TX packets:6387 errors:0 dropped:0 overruns:0 carrier:0 
     collisions:0 txqueuelen:1 
     RX bytes:565256 (565.2 KB) TX bytes:565256 (565.2 KB) 

IP는 VM이있는 가상 네트워크 중 하나이며 공용 네트워크가 아닙니다. 나는 시도하고있는 경우 :

curl 10.0.0.4:9999 

내가 얻을 :

curl: (7) Failed to connect to 10.0.0.4 port 9999: Connection refused 

나는 지시 here 다음 내 서버를 설정합니다. 서버가 수신 여부를 확인하기 위해 나는 또한 NETSTAT를 실행

Host queryserver 
LocalForward localhost:9999 127.0.0.1:9999 

:

netstat -ln | grep 9999 
tcp6  0  0 127.0.0.1:9999   :::*     LISTEN 

iptables에는 문제가되지 않습니다을 나는 또한 내 스푸핑/설정 변경 :

sudo iptables -L 
Chain INPUT (policy ACCEPT) 
target  prot opt source    destination 

Chain FORWARD (policy ACCEPT) 
target  prot opt source    destination 

Chain OUTPUT (policy ACCEPT) 
target  prot opt source    destination 

이 문제를 어떻게 해결할 수 있습니까?

+0

VM에 대해 인바운드 보안 규칙을 만들었습니까? –

+0

예, 하늘색의 네트워크 보안 그룹에 하나를 추가했습니다. – user128574

답변

0

위키 데이터 쿼리-RDF는 부두 서블릿 컨테이너를 시작하고 blazegraph 서비스를 설치합니다 -. * 전쟁, 그것은 기본적으로 runBlazegraph.sh 스크립트에서 '로컬 호스트'에 --host $ HOST를 지정 있습니다.

Jetty configuration에 따르면, --host를 지정하면 수신 대기 할 인터페이스가 정의되므로 기본적으로 Wikidata-query-rdf가 실행하는 Blazegraph는 localhost 인터페이스 만 수신합니다. runBlazegraph.sh을 실행하는 동안

가 -h your_ip을 지정

./runBlazegraph.sh -h 10.0.0.4 

을 그 문제가 해결되지 않으면, 당신은 0.0.0을 사용해야 할 수도 있습니다.0 호스트 이름을 사용하여 모든 인터페이스에서 수신 대기)

./runBlazegraph.sh -h 0.0.0.0 -o -Djava.net.preferIPv4Stack=true 
0
tcp6  0  0 127.0.0.1:9999   :::*     LISTEN 

서비스가 tcp6이 아닌 tcp를 수신하는지 확인할 수 있습니다. 현재 Azure는 Azure VM에서 IPv6을 직접 지원하지 않습니다. Azure는 Azure Load Balancer에서 IPv6 만 지원합니다. 자세한 내용은 link을 참조하십시오.

서비스를 원격으로 액세스하려는 경우 tcp에서 수신하는 서비스를 수정하거나 Azure Load Balancer를 사용할 수 있습니다.

이 비슷한 question을 참조 할 수 있습니다.