在终于设法让我的 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' and
eth0with 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 问题现在应该已经消失。