本文转自:http://www.chinasjjt.com/index.php?m=content&c=index&a=show&catid=96&id=100

先给一个环境:

  cisco路由器内网接口s1/0: 192.168.1.1 255.255.255.0
  外网接口s1/1: 10.0.0.1 255.255.255.0
  服务器ip:192.168.1.100
  首先telnet到路由器上:
  User Access Verification
  Username: cisco #输入用户名
  Password: #输入密码
  Router>en #进入特权模式
  Password: #输入特权模式密码
  Router#conf t #进入全局配置模式
  Enter configuration commands, one per line. End with CNTL/Z.
  Router(config)#access-list 1 permit 192.168.1.0 0.0.0.255 #建立访问控制列表准备做nat转换
  Router(config)#ip nat inside source list 1 interface s1/1 #建立NAT转换,将192.168.1.0的地址转换为接口s1/1的地址
  Router(config)#int s1/0 #进入接口模式
  Router(config-if)#ip nat inside #设定s1/0为NAT内部接口
  Router(config-if)#int s1/1 #进入S1/1的接口模式
  Router(config-if)#ip nat outside #设定S1/1为NAT外部接口
  Router(config-if)#exit
  Router(config)#
  此时已经启用了NAT,内网可以上网了。
  现在开始端口映射,让外网访问内网服务器:
  Router(config)#ip nat inside source static tcp 192.168.1.100 5631 10.0.0.1 5631 extendable
  Router(config)#ip nat inside source static tcp 192.168.1.100 5632 10.0.0.1 5632 extendable #因为10.0.0.1这个地址已经应用在s1/1接口上并做了NAT转换的地址,这里必须加上extendable这个关键字,否则报错。如果用另外的外网ip比如10.0.0.2,在这里就可以不加extendable。
  现在外网的机器可以访问内网了。
  命令show ip nat translations可以查看nat转换情况
  show run也可以找到相关配置
  Router(config)#exit #退出全局配置模式,到特权模式下使用show命令
  Router#sho ip nat translations
  Pro Inside global Inside local Outside local Outside global
  tcp 10.0.0.1:23 192.168.1.100:23 — —
  tcp 10.0.0.1:23 192.168.1.100:23 10.0.0.2:48268 10.0.0.2:48268
  tcp 10.0.0.1:5631 192.168.1.100:5631 — —
  tcp 10.0.0.1:5632 192.168.1.100:5632 — —
  附:要删除哪条命令只要在命令前加 no 即可
  补充: 你telnet的是5631端口,而服务器的telnet端口是23
  你要telnet到服务器的5631端口就必须改服务器的telnet端口,在注册表改,服务器的防火墙也要打开相应端口。来源:考试大
  如果你不改服务器端口也可以将5631的端口映射到服务器的23端口,命令如下:
  Router(config)#ip nat inside source static tcp 192.168.1.100 23 10.0.0.1 5631 extendable
  要先删掉5631到5631的映射,命令如下:
  Router(config)#no ip nat inside source static tcp 192.168.1.100 5631 10.0.0.1 5631 extendable
  不改服务器端口就必须将外网ip的5631端口映射到服务器的23端口。然后你telnet ip 5631 其实就是telnet服务器的23端口