问题是这样的。我们公司有一台双网卡的网通服务器。
这台网通服务器有一个路由(对外网网通),还有一个内网网卡。现在碰到的问题是,无论我使用 Remoting 还是 WCF,都无法通过外网去访问他。而我测试过后,发现 IIS 也无法在外网访问。可是令人郁闷的是:有一个“公司主要软件”的“中间层软件”却可以透出去。经过一番猜测,有可能是没有做“外网端口映射”,而外网被其中一个端口占用。才导致这样的问题?求救论坛高手,你们时候有碰过这样的问题?

解决方案 »

  1.   

    补充上面的问题。我尝试过。
    通过内网,
    IIS 可以访问 路由IP(网通内网)和 普通IP。但是却外网,无论怎么设置,IIS都无法访问。我想用 WCF 或 Remoting 来做 双线支持。程序已经做好了,日,服务器不给力。
      

  2.   

    "而外网被其中一个端口占用" 这句话什么意思啊?看不懂啊你外网访问内网电脑的话,内网电脑访问的端口肯定要在路由器上进行映射的。举例说明:  假定你那台电脑的内网IP是192.168.1.2,外网(路由器)IP是221.228.255.7,要从外网访问你那台内网电脑的IIS服务(默认是80端口),那么你必须在路由器上把80端口映射到192.168.1.2的80端口。如果80映射给了其他内网电脑,有2个方法解决:1、把内网电脑IIS的端口号改为未被人使用的,例如1991,那么外网就可以通过http://221.228.255.7:1991来访问那台电脑的IIS;2、在路由器上映射端口时,把一个未使用的端口映射到内网电脑,例如,你可以把路由器的1992端口映射到192.168.1.2的80端口,这样外网可以通过http://221.228.255.7:1992来访问内网电脑的IIS服务。
                       
      

  3.   

    什么叫端口被软件占用啊?可能你对TCP/ip的访问方式还不太了解。如果你的服务器上你的软件无法打开某个端口用来侦听,那可能是其他程序已经侦听了这个端口,你可以通过netstat -a 命令来查看哪些程序侦听了哪些端口。如果你的程序或某个服务正常启动了,那么就不存在“端口被程序占用”的问题,你同样可以通过netstat 命令来查看你的程序或服务是否成功侦听。而这一步和外网还没有任何关系。成功侦听后,你看看你的防火墙是否运行你侦听端口被外部访问,如果不是先允许它。然后才路由器上映射端口,这样就可以通过internet的任何一台电脑连接到你的那台电脑了。
      

  4.   

    这个很正常呀。这个服务器在网通硬件防火墙之内。
    所有的端口都被屏蔽了,你当然访问不到。
    iis是需要80端口的,80也被屏蔽了。
    你的那个软件能访问是因为:防火墙只对你的那个服务器开了一个端口,
    譬如说:8080,这样的话,除了8080端口能访问到那个机器,别的端口都不行。
    你如果能使用远程桌面登录到那个服务器,说明开启了远程桌面登录的那个端口3389.
    你登录到那个服务器,使用cmd->netstat -an查看所有打开的端口,
    就可以知道你的那个中间件软件是使用那个端口和服务器进行数据交互的了。解决办法:和管理机房的人问问,这个服务器的维护人员是谁?能不能在防火墙上再开几个端口。让你访问。
      

  5.   

    会不会是本机路由冲突?你在命令行下用route print命令看一下,如果出现类似如下信息
    Network Destination Netmask Gateway Interface Metric
    0.0.0.0 0.0.0.0 218.22.123.254 218.22.123.123 20
    0.0.0.0 0.0.0.0 192.168.123.254 192.168.123.123 1
    则指向0.0.0.0的有两个网关,显然会出现路由冲突,这样的话可以用route命令解决:
    1、route delete 0.0.0.0  删除所有0.0.0.0的路由
    2、route add 0.0.0.0 mask 0.0.0.0 218.22.123.254  添加0.0.0.0网络路由
    3、route add 192.0.0.0 mask 255.0.0.0 192.168.123.254  添加192.0.0.0网络路由
    这时就可以同时访问两个网络了。如果你的问题确实这样可以解决,那么要注意这种方法在系统重启后会失效,我还是在win2000时代遇到的这个问题,是通过route add -p添加静态路由实现的重启后不丢失,你可以查查其它版本系统下route命令的使用
      

  6.   

    只要是通过路由器上网的,外网要访问进来,就必须进行端口映射(无论是否安装了防火墙)。NAT上的端口映射请根据相关设备查看说明,如果有web控制台,可以直接图形操作,如果是华为路由器,则只能命令行下操作,输入?查询相关指令。
    另外要注意,一个端口只能映射给一台内网主机,如果已经被映射过的端口就不能重复映射了。
      

  7.   

    ===========================================================================
    Interface List
    0x1 ........................... MS TCP Loopback interface
    0x10003 ...00 1f c6 10 f1 9f ...... Generic Marvell Yukon Chipset based Ethernet
     Controller
    0x10004 ...00 1f c6 10 f0 7c ...... Generic Marvell Yukon Chipset based Ethernet
     Controller #2
    ===========================================================================
    ===========================================================================
    Active Routes:
    Network Destination        Netmask          Gateway       Interface  Metric
              0.0.0.0          0.0.0.0      192.168.1.1     192.168.1.10     10
            127.0.0.0        255.0.0.0        127.0.0.1        127.0.0.1      1
          192.168.1.0    255.255.255.0      192.168.1.8    192.168.100.8     10
          192.168.1.0    255.255.255.0     192.168.1.10     192.168.1.10     10
          192.168.1.8  255.255.255.255        127.0.0.1        127.0.0.1     10
         192.168.1.10  255.255.255.255        127.0.0.1        127.0.0.1     10
        192.168.1.255  255.255.255.255      192.168.1.8    192.168.100.8     10
        192.168.1.255  255.255.255.255     192.168.1.10     192.168.1.10     10
          192.168.5.0    255.255.255.0    192.168.100.1    192.168.100.8      1
          192.168.6.0    255.255.255.0    192.168.100.1    192.168.100.8      1
          192.168.7.0    255.255.255.0    192.168.100.1    192.168.100.8      1
         192.168.11.0    255.255.255.0    192.168.100.1    192.168.100.8      1
        192.168.100.0    255.255.255.0    192.168.100.8    192.168.100.8     10
        192.168.100.8  255.255.255.255        127.0.0.1        127.0.0.1     10
      192.168.100.255  255.255.255.255    192.168.100.8    192.168.100.8     10
            224.0.0.0        240.0.0.0     192.168.1.10     192.168.1.10     10
            224.0.0.0        240.0.0.0    192.168.100.8    192.168.100.8     10
      255.255.255.255  255.255.255.255     192.168.1.10     192.168.1.10      1
      255.255.255.255  255.255.255.255    192.168.100.8    192.168.100.8      1
    Default Gateway:       192.168.1.1
    ===========================================================================
    Persistent Routes:
      Network Address          Netmask  Gateway Address  Metric
          192.168.6.0    255.255.255.0    192.168.100.1       1
          192.168.7.0    255.255.255.0    192.168.100.1       1
         192.168.11.0    255.255.255.0    192.168.100.1       1
          192.168.5.0    255.255.255.0    192.168.100.1       1信息是这样的。18#,是在路由上做端口映射?
      

  8.   

    如果要通过外网访问你那网通服务器,肯定要做端口映射,你需要什么端口就映射哪个,比如IIS就是80了
    其实你可以在路由器设置DMZ,IP为网通服务器外网网卡,如果没问题就肯定是端口映射
      

  9.   


    那就简单了,对内的那张网卡相当于没有,对于你的问题没有任何影响,所以你不要在纠结于两张网卡了。现在问题是那个网通的路由器的问题你先搞清楚,是固定IP吗?路由器的IP是公网地址(就是你要从外部访问的地址,也就是我刚才例子中的外网地址)吗?不要搞了半天你的那个路由器根本只是另一个内网,如果是每一级路由都要做映射的。
      

  10.   


    我不仅仅用 80 端口进行测试,还测试了很多端口。大概有45个。什么8081 8089 9999等。令人郁闷的是,IIS 和我的程序无法访问。可是有三个其他软件的端口,外网却可以访问。
      

  11.   

    那你就在IIS服务中把端口改成其他的试试啊。