Я изначально разместил этот вопрос в stackoveflow, но мне посоветовали, что он больше подходит для этого сайта.
Я пытаюсь получить доступ к серверу Jetty, развернутому на одном компьютере, с другого компьютера вне локальной сети, но он не работает. Я прочитал эту ветку и последовал совету, предложенному @Joakim Erdfelt , однако это не сработало. Мой код ниже:
Server server = new Server();
// HTTP connector
ServerConnector serverConnector = new ServerConnector(server, 1, 1);
serverConnector.setHost("0.0.0.0"); <-
serverConnector.setPort(8080);
serverConnector.setIdleTimeout(30000);
// Set the connector
server.addConnector(serverConnector);
Я попытался получить доступ к серверу с другого удаленного сервера с помощью следующего кода:
String postUrl = "http://" + myIP + ":8080"; // myIP is set to the public IP address of Jetty Server
System.out.println("Post URL: " + postUrl);
RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(120 * 1000).build();
try (CloseableHttpClient httpClient = HttpClientBuilder.create().setDefaultRequestConfig(requestConfig).build();) {
HttpPost httpPostRequest = new HttpPost(postUrl);
...
Однако это вызывает следующее исключение:
HttpPostConnectException: Connect to 123.4.56.78:8080.. failed: Connection refused: connect
Что вызывает эту ошибку? Я разрешил доступ к брандмауэру при появлении запроса, поэтому не думаю, что это проблема брандмауэра. Порт 8080
также не используется ни для каких других процессов. Я пробовал несколько портов, но безрезультатно.
Спасибо
Я перенесу некоторые из моих рекомендаций в ответ. Вам не хватает базовых знаний о сетях, попробуйте немного почитать об этом (например, здесь). Некоторые основы:
Теперь должно быть понятно, почему у вас несколько IP-адресов: Google видит только ваш общедоступный IP-адрес. Чтобы ваш сервер причала был доступен из Интернета, вам необходимо переадресация портов. По сути, вы создадите правило внутри своего домашнего маршрутизатора « пересылать каждый TCP-пакет, который вы получаете через порт 8080, на внутреннее устройство XY». Вам нужно будет проверить руководство вашего маршрутизатора, чтобы узнать, как это сделать, большинство маршрутизаторов имеют веб-интерфейс для настройки. Я надеюсь, что это прояснит ваше замешательство...