① linux 服务器内网IP映射到外网

如果你想在外网访问这个服务器的web应用,可以在外网出口路由上做nat端口映射或者是nat静态转换,这样就可以了,如果此web应用只用于内网访问,直接访问即可,使用dns的话就需要假设内网dns服务器了,

② 简单查看linux是否能访问外网及拥有的公网IP

在linux服务器上ping一个外放的IP地址,查看是否能够ping通
如果可以ping通,则linux具有访问外网的能力专
使用ifconfig查看是否拥有公网属IP,如果只有内网IP,则说明linux位于内网之中,没有专属的公网IP

③ Linux防火墙实现apache服务器内外网都能访问,ftp只能内网(192.168.0.20)访问,且qq和msn不能登录

iptables -P INPUT DROP
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -I INPUT -p tcp --dport 80 -m state --state NEW -j ACCEPT
iptables -I INPUT -p tcp --dport 21 -m state --state NEW -j ACCEPT -s 192.168.0..20 -i $ETH_LAN
(如果你的内网卡是来源eth1,那么ETH_LAN=eth1)
qq和MSN不能登录这事麻烦了,这两个软件可以通过TCP80/443端口登录的,只能在iptables上加l7模块了。而且要在OUTPUT链下加规则。

④ 我用虚拟机装的linux 可以ping ssh 内网,但是PING不通网关,也不能ping其它外网。

是ubuntu 还是redhat? 没加网关 或者路由器有mac绑定。

Redhat/Centos
vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0 设备名称
BOOTPROTO=dhcp /static 自动获取/静态ip
IPADDR=IP地址
NETMASK=掩码
GATEWAY=网关
ONBOOT=yes 开机激活网卡

#service network restart 重启专网络
============================

Ubuntu
$sudo vi /etc/network/interfaces
iface eth0 inet dhcp (自动获取ip)

auto eth0
iface eth0 inet static
address 192.168.0.22
netmask 255.255.255.0
gateway 192.168.0.1

$ sudo /etc/init.d/networking restart 重启网络