如果我无法访问路由器,该如何解决 Xbox 360“NAT 中等”问题?

如果我无法访问路由器,该如何解决 Xbox 360“NAT 中等”问题?

在终于设法让我的 Xbox 360 连接到实时设备后,我遇到了“NAT 中等”问题。

首先这是我的设置...

无线宽带 >(USB)> 笔记本电脑 ubuntu 11.10 >(以太网)> xbox 360

我读过很多解决 NAT 问题的论坛,例如发帖 http://ubuntuforums.org/showthread.php?t=538796,但都是使用路由器的情况。据我了解,需要转发某些端口。

如果我没有路由器来转发端口,是否可以解决这个问题?因为我无权访问 DMZ?

干杯

答案1

路由器基本上是一台功能有限的计算机。因此,您的计算机,特别是使用 Linux 的计算机!:) 可以充当您的 XBOX 的路由器(如果您希望与更多设备共享 3g 互联网,则可以充当您其余内部网络的路由器)

首先你需要 iptables 来管理 NAT 遍历和转发(如果尚未安装),在终端输入:

sudo apt-get install iptables  

然后按 Enter 键进行安装

然后我们将为你编写一个小脚本,进行必要的设置以使其正常工作

-------- 剪辑 ---------

# just a shorter name for iptables
IPTABLES='/sbin/iptables'

# internal network interface
int='eth0'

# interface to internet ,check with ifconfig , but its probably ppp0 for you
ext='eth1'

# we configure the network interface to the ip below
ifconfig $int 10.0.0.1 netmask 255.255.255.0

# ip address for the xbox
xbox='10.0.5'

# enable forwarding of packages
echo 1 > /proc/sys/net/ipv4/ip_forward


# if you wish to forward ports  it would look something like this
# but change ports (1000,2000) to what your xbox requires you to forward
$iptables -t nat -A PREROUTING -p tcp -i $ext --dport 1000 -J DNAT --to $xbox

# if you need udp ports as well
$iptables -t nat -A PREROUTING -p udp -i $ext --dport 1000 -J DNAT --to $xbox
# use --dport 1000:2000 , if you need to forward a range

-------- 剪辑 ---------

将其保存在文本文件中,以便您可以在重新启动计算机时启动它(因为这些设置在重新启动后会消失)

你还需要从 ubuntu 网络管理器中删除你的内部网卡

编辑/etc/NetworkManager/NetWorkManager.conf 并输入文本:

unamanaged-devices=mac:00:23:33:ec:a0:6a

在 [keyfile] 行下方

(您需要将 mac 地址更改为您的内部网卡的 mac 地址(使用终端中的 ifconfig 检查)

现在终于可以启动你的脚本了sudo sh nameofscript.txt ,只要你将你的 Xbox 连接到网卡并给它一个 IP 地址,就可以了,比如10.0.2 netmask 255.255.255.0

祝你好运! :)

答案2

解决这个问题的方法有很多。我的答案主要是针对那些不想摆弄 iptables 和防火墙(如 ufw、firestarer)的人。我摆弄了它们,却找不到问题所在。我决定重新安装并按照下面的步骤操作,这样就行得通了。

首先,您需要检查您的无线宽带 USB 棒是否具有任何阻止入站连接的防火墙/过滤器功能(通过谷歌搜索您的型号)。或者,如果您的 PC 上安装了 Windows,您可以使用 utorrent 或 PFPortCheck 等软件检查随机端口进行测试。它应该显示您的端口已打开。(警告:我发现 PFPortCheck 给出了准确的结果,但却是恶意的)。网站如http://www.yougetsignal.com/tools/open-ports/只有当您拥有响应其请求的服务(如 Web 服务器)时,才能测试您的端口。否则,他们会说您的端口已关闭。不幸的是,我找不到一种简单但可靠的方法来在 ubuntu 上测试这一点(无需使用 iptables)。

其次,当您通过无线宽带 USB 共享互联网连接时,您的计算机将充当 Xbox 和互联网之间的路由器(我假设您已经知道如何通过将有线(以太网)的 IPv4 设置设置为“共享给其他计算机”来将互联网共享到您的 Xbox)。您可以将端口转发到您的 Xbox(通过向 iptables 添加规则)或打开 UPnP。我发现后者对我来说更省事。操作方法:

  • 如果尚未安装,请安装 linux-idg:

    sudo apt-get install linux-igd

  • 打开你的 xbox(我假设你的 xbox 已经连接到你的笔记本电脑的以太网)。运行以下命令:

    sudo upnpd wlan0 eth0

    • 替换wlan0' andeth0 with your broadband usb and ethernet name. You can check them by using the command:ifconfig`。

    • 如果出现Invalid internal interface name 'eth0',则表示您的 xbox 已关闭并且以太网端口似乎已断开连接。

    • 别担心Unknown config line: upnp_log_filename = "";,没关系。

    • 这是暂时的改变。每次重启笔记本电脑时,您都必须执行此操作才能使用存在 NAT 问题的 Xbox Live。

  • 在您的 Xbox 上测试您的 Xbox Live 连接。NAT 问题现在应该已经消失。

相关内容