0
我正在測試出灣2.0.0.Alpha1網絡服務器。當我在本地運行它時,它會運行並返回Hello World
當我去localhost:80
時。然後,我在遠程服務器上部署Web服務器並轉至remote_ip:80
,但我沒有收到任何迴應。如果我在遠程服務器上運行curl -i -X GET http://localhost:80
,那麼我也會收到Hello World
。所以服務器肯定正在運行,但由於某些原因,它只是無法通過遠程IP地址訪問。如果我嘗試將主機名設置爲代碼中的遠程IP(即.addHttpListener(80, "remote.ip")
),那麼我會得到一個BindException
。承諾網絡服務器不綁定到遠程地址
import io.undertow.Undertow;
import io.undertow.server.HttpHandler;
import io.undertow.server.HttpServerExchange;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
public class HelloWorldServer {
public static void main(final String[] args) {
try {
Runtime.getRuntime().exec("sudo fuser -k 80/tcp");
} catch (IOException ex) {
Logger.getLogger(HelloWorldServer.class.getName()).log(Level.SEVERE, null, ex);
}
Undertow server = Undertow.builder()
.addHttpListener(80, null)
.setHandler(new HttpHandler() {
@Override
public void handleRequest(final HttpServerExchange exchange) throws Exception {
exchange.getResponseSender().send("Hello World");
}
}).build();
server.start();
}
}
任何線索?
線索#1:使用「netstat -a」(或等價物)來檢查服務器正在監聽的IP和端口。 –
'tcp6 0 0 127.0.0.1:80 ::: * LISTEN 2939/java ' – Hooli
那麼你是否在使用該IP地址的IPv6上使用curl? (這是「本地主機」...) –