Почему не подключается удаленный клиент к простому серверу на golang запущенному локально? Вот есть простой сервер на го package main
import (
"bufio"
"fmt"
"log"
"net"
)
// Our server
const (
HOST = ""
PORT = "8080"
TYPE = "tcp4"
)
func main() {
listener, err := net.Listen(TYPE, fmt.Sprintf("%s:%s", HOST, PORT))
if err != nil {
log.Fatal("Error listening " + err.Error())
}
defer func() {
if err := listener.Close(); err != nil {
fmt.Println("Error stoping listener")
fmt.Println("Listener closed.")
}
}()
fmt.Printf("[+] Server listening on %s:%s type %s\n", HOST, PORT, TYPE)
for {
connection, err := listener.Accept()
if err != nil {
fmt.Println("Error accepting connection ", err.Error())
continue
}
fmt.Println("Accepted connection: ", connection.RemoteAddr().String())
go handleRequest(connection)
}
}
func handleRequest(connection net.Conn) error {
defer func() {
if err := connection.Close(); err != nil {
fmt.Println("Error closing connection: ", err.Error())
}
}()
r := bufio.NewReader(connection)
w := bufio.NewWriter(connection)
scanr := bufio.NewScanner(r)
for {
scanned := scanr.Scan()
if !scanned {
if err := scanr.Err(); err != nil {
log.Printf("Scanning error on %v(%v)", err, connection.RemoteAddr().String())
return err
}
}
text := scanr.Text()
fmt.Printf("Recieved data from %s: %s\n", connection.RemoteAddr().String(), text)
w.WriteString(text + "\r\n")
w.Flush()
if text == "quit" || text == "exit" {
fmt.Println("Recieved exit request", connection.RemoteAddr().String(), text)
break
}
}
return nil
}
Смотрю локально свой ip адрес: 192.168.31.245
Запускаю виртуалку и в ней через telnet 192.168.31.245 8080 эту команду получаю соединение, все ок.
Таким же образом пытаюсь подключиться на удаленном сервере выделенном на центосе и постоянно пишет "Trying 192.168.31.243..." но само подключение не идет..
В чем может быть проблема?

21 Авг 2019 в 06:33
248 +1
1
Ответы
1

Проблема может быть связана с различными факторами:

Фаервол: Убедитесь, что на удаленном сервере не блокируются порты, через который происходит соединение.

Настройки сети: Проверьте правильность настроек сети на удаленном сервере, возможно, что есть проблемы с маршрутизацией или настройками IP.

Проблемы сети: Может быть, что сеть между вашим локальным компьютером и удаленным сервером имеет проблемы, из-за которых соединение не устанавливается.

Проблемы в коде: Убедитесь, что ваш код сервера правильно работает и не вызывает ошибок при установлении соединения с удаленным клиентом.

Настройки безопасности: Возможно, что на удаленном сервере применены дополнительные настройки безопасности, которые могут блокировать соединение с локальным сервером.

Проверьте вышеперечисленные возможные причины и устраните проблему, чтобы удаленный клиент смог подключиться к вашему серверу на Go.

20 Апр 2024 в 13:16
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир