Preciso abrir uma porta específica em um servidor OpenVPN para tráfego de torrent?

Preciso abrir uma porta específica em um servidor OpenVPN para tráfego de torrent?

Se eu me conectar a um servidor openvpn na porta 1194 do Tunnelblick em um Mac (OSX 10.10), como posso garantir que a porta usada pelo Transmission (por exemplo, 66887) estará aberta para conexões de entrada?

Configuração atual:

Conectado a um ponto de acesso Wifi (fora do meu controle, sem acesso às configurações do roteador) Conectado ao servidor OpenVPN (tenho controle total sobre a configuração)

A transmissão 'funciona', mas é lenta e a porta aparece como fechada nas preferências da rede de transmissão. A conexão VPN openvpn funciona normalmente para todo o tráfego http padrão.

Openvpn está sendo executado em um servidor Ubuntu remoto. Tentei usar o ufw para abrir a porta acima, mas isso não teve efeito e suspeito que seja necessária uma configuração de rede mais profunda.

A versão do openvpn é OpenVPN 2.3.2 x86_64.

É possível encaminhar a porta 66887 neste cenário ou preciso de acesso ao roteador LAN local para que isso funcione?

Tentei alterar o endereço de ligação - BindAddressIPv4 - para transmissão por meio do arquivo plist de preferências, mas fiz isso incorretamente ou não fez diferença.

Responder1

Surpreso, ninguém percebeu, mas 66887 não é um número de porta válido.

https://stackoverflow.com/questions/113224/what-is-the-largest-tcp-ip-network-port-number-allowable-for-ipv4#113228

O número da porta é um número inteiro não assinado de 16 bits, portanto 65535.

O intervalo válido para portas é 0-65535.
Como você está especificando a porta inválida 66887, a maioria dos sistemas operacionais irá truncá-la para 1351:

[root@f ~]# tcpdump -qnn host 8.8.8.8 & telnet 8.8.8.8 66887
[1] 4054
Trying 8.8.8.8...
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
15:30:56.175482 IP 10.0.0.42.60280 > 8.8.8.8.1351: tcp 0

Ou em C:

[root@f ~]# cat > 16.c << EOF
> #include <stdio.h>
> #include <stdint.h>
> int main(void) {
>  uint16_t port=66887;
>  printf("%d\n",port);
>  return 0;
> }
> EOF
[root@f ~]# gcc -o 16 16.c
16.c: In function ‘main’:
16.c:4: warning: large integer implicitly truncated to unsigned type
[root@f ~]# ./16
1351

Responder2

Você precisa encaminhar a porta no seu servidor openvpn.

Não conheço comandos ufw, mas usando iptables, os comandos seriam (com 10.8.0.6 o IP da sua máquina quando conectado à VPN e 66887 a porta para encaminhar):

iptables -t nat -A PREROUTING -p tcp --dport 66887 -j DNAT --to 10.8.0.6:66887
iptables -t nat -A PREROUTING -p udp --dport 66887 -j DNAT --to 10.8.0.6:66887

informação relacionada