UDP remote Server

Salve a tutti, sto tentando di creare un server udp che lavori in
remoto.Mentre in locale il tutto funziona correttamente, non appena
provo a connettermi da remoto, Il server non riceve alcuna richiesta di
connessione quindi è il client che non comunica. Ovviamente su tutte e
due i router le porte in questione sono aperte, eccezioni sui firewall
create. A volte viene fuori un errore, “impossibile connettersi
all’host, server non autorevole”. Non capisco qual’è il problema:

ecco il codice:

-------------------------------Lato Server :

require “socket”

server = UDPSocket.open

server.bind(‘192.168.1.91’, 12345) #----ip macchina del server e porta
aperta sul firewall e sul router

loop do
data, sender = server.recvfrom(100)
chost = sender[3]
cport = sender[1]

puts “Richiesta da #{chost}:#{cport}”

server.send(“ok”, 0, chost, cport)

end

-----------------------------Lato client:

require “socket”
client = UDPSocket.open

client.connect(‘79...***’, 12345) ip pubblico del router e
portmapping su l indirizzo del server

puts ‘numero da inviare:’
num = gets.chomp

client.send("#{num}", 0)

while msg=client.gets
puts msg
end