Você deve verificar suas regras de firewall no XMBC Pi. A razão é que, fora das lojas de segurança, algumas caixas pré-configuradas barram todas as conexões originadas de fora da própria LAN.
O comando para fazer isso é
iptables -t filter -L -n -v
e da mesma forma para as outras tabelas, nat e mangle . Se você puder agir de acordo com essas regras, então esta é a solução mais simples.
Como alternativa, se o seu roteador executa software como dd-wrt, OpenWrt, Tomato e assim por diante, a seguinte regra no roteador
iptables -t nat -A POSTROUTING -o LAN_IFACE -s ! 192.168.0.0/24 -d 192.168.0.15 -p tcp --dport 22 -j MASQUERADE
Isto assume que sua rede doméstica é 192.168.0.0/24, que o recalcitrante Pi é 192.168.0.15 e que a interface LAN do roteador é chamada LAN_IFACE. A regra simplesmente reescreve a origem do pacote como proveniente do próprio roteador (192.168.0.1 sob as suposições acima), enganando assim o XMBC para pensar que as conexões são iniciadas de forma local, em vez de remotamente.
Por último, se o seu roteador não permitir o que precede, se você tiver alguma outra máquina Linux (como, presumo, o primeiro Pi), você pode
-
porta encaminha as conexões para o Pi2 para algumas portas de numeração alta de Pi1
-
redirecione esses pacotes, após o mascaramento, para Pi2 e sua porta apropriada.
Desta vez, por porta, você precisa de dois comandos: vamos considerar novamente o ssh, e digamos que o roteador tenha conexões ssh encaminhadas pela porta para a porta 51111 do Pi2 para o Pi1 (192.168.0.10:51111). Então:
iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 51111 -j DNAT --to 192.168.0.15:22
iptables -A FORWARD -p tcp -d 192.168.0.15 --dport 22 -j ACCEPT
Apenas certifique-se de ter permitido o encaminhamento no Pi1,
sysctl net.ipv4.conf.eth0.forwarding=1