Почему не подключается удаленный клиент к простому серверу на 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..." но само подключение не идет..

В чем может быть проблема?
  • Вопрос задан
  • 140 просмотров
Пригласить эксперта
Ответы на вопрос 1
@falconandy
192.168.31.245 - это локальный IP адрес, а нужен внешний IP адрес.
Можно использовать ngrok
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы