added barrier escape NAT support
This commit is contained in:
@@ -8,7 +8,7 @@ import (
|
|||||||
// EscapeNAT Func to escape NAT
|
// EscapeNAT Func to escape NAT
|
||||||
// - 1 port for server
|
// - 1 port for server
|
||||||
// - 2 port for barrierKVM
|
// - 2 port for barrierKVM
|
||||||
func EscapeNAT(ScreenSharePort, GameplayServerPort string) (ServerPort string, ScreensharePort string, barrierKVMport string, err error) {
|
func EscapeNAT(ScreenSharePort, GameplayServerPort string) (ServerPort string, ScreensharePort string, err error) {
|
||||||
// Get free port from P2PRC server node
|
// Get free port from P2PRC server node
|
||||||
serverPort, err := frp.GetFRPServerPort("http://64.227.168.102:8088")
|
serverPort, err := frp.GetFRPServerPort("http://64.227.168.102:8088")
|
||||||
|
|
||||||
@@ -39,8 +39,12 @@ func EscapeNAT(ScreenSharePort, GameplayServerPort string) (ServerPort string, S
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
func EscapeNATBarrier() (barrierKVMport string, err error) {
|
||||||
// Get free port from P2PRC server node
|
// Get free port from P2PRC server node
|
||||||
serverPort, err = frp.GetFRPServerPort("http://64.227.168.102:8088")
|
serverPort, err := frp.GetFRPServerPort("http://64.227.168.102:8088")
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return
|
return
|
||||||
|
|||||||
31
main.go
31
main.go
@@ -17,6 +17,7 @@ import (
|
|||||||
func main() {
|
func main() {
|
||||||
addr := flag.String("addr", "0.0.0.0", "Listen address")
|
addr := flag.String("addr", "0.0.0.0", "Listen address")
|
||||||
//port := flag.String("port", "8888", "port for running the server")
|
//port := flag.String("port", "8888", "port for running the server")
|
||||||
|
barrier := flag.Bool("barrier", false, "set external port barrier")
|
||||||
tls := flag.Bool("tls", false, "Use TLS")
|
tls := flag.Bool("tls", false, "Use TLS")
|
||||||
setconfig := flag.Bool("setconfig", false, "Generates a config file")
|
setconfig := flag.Bool("setconfig", false, "Generates a config file")
|
||||||
certFile := flag.String("certFile", "files/server.crt", "TLS cert file")
|
certFile := flag.String("certFile", "files/server.crt", "TLS cert file")
|
||||||
@@ -43,6 +44,27 @@ func main() {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Config, err := config.ConfigInit()
|
||||||
|
if err != nil {
|
||||||
|
log.Fatalln(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
// if barrier flag is provided
|
||||||
|
if *barrier {
|
||||||
|
natBarrier, err := core.EscapeNATBarrier()
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println(err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
Config.NATEscapeBarrierPort = natBarrier
|
||||||
|
err = Config.WriteConfig()
|
||||||
|
if err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
fmt.Println(Config.IPAddress + ":" + Config.NATEscapeBarrierPort)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
// Print out room information
|
// Print out room information
|
||||||
if *roomInfo {
|
if *roomInfo {
|
||||||
room, err := core.ReadRoomsFile()
|
room, err := core.ReadRoomsFile()
|
||||||
@@ -87,13 +109,8 @@ func main() {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
Config, err := config.ConfigInit()
|
|
||||||
if err != nil {
|
|
||||||
log.Fatalln(err)
|
|
||||||
}
|
|
||||||
|
|
||||||
// running implementation to escape NAT
|
// running implementation to escape NAT
|
||||||
GameServerPort, ScreenSharePort, barrireKVM, err := core.EscapeNAT(Config.InternalScreenSharePort, Config.InternalGameServerPort)
|
GameServerPort, ScreenSharePort, err := core.EscapeNAT(Config.InternalScreenSharePort, Config.InternalGameServerPort)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatalln(err)
|
log.Fatalln(err)
|
||||||
}
|
}
|
||||||
@@ -101,7 +118,7 @@ func main() {
|
|||||||
Config.IPAddress = "64.227.168.102"
|
Config.IPAddress = "64.227.168.102"
|
||||||
Config.NATEscapeGameServerPort = GameServerPort
|
Config.NATEscapeGameServerPort = GameServerPort
|
||||||
Config.NATEscapeScreenSharePort = ScreenSharePort
|
Config.NATEscapeScreenSharePort = ScreenSharePort
|
||||||
Config.NATEscapeBarrierPort = barrireKVM
|
Config.NATEscapeBarrierPort = ""
|
||||||
|
|
||||||
err = Config.WriteConfig()
|
err = Config.WriteConfig()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
Reference in New Issue
Block a user