centos forward centos7挂载
各位老铁们好,相信很多人对centos forward都不是特别的了解,因此呢,今天就来为大家分享下关于centos forward以及centos7挂载的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!
CentOS7使用hostapd实现无AP模式的详解
这篇是 linux下使用hostapd实现无线接入点 AP模式的另一种实现方式:hostapd路由模式配置。
对于软硬件的基本配置及 hostapd安装在《CentOS 7之 hostapd AP模式配置》的前半部分内容中有说明,可以先看看那篇,再看本文。
hostapd的AP模式配置需要的有线网卡和无线网卡进行桥接,那路由模式配置主要就是将无线网卡的数据通过有线网卡进行伪装、转发两个方面,也就不再需要将有线和无线网卡进行桥接。
配置这种路由模式就类似一台普通的无线路由器,有线网口就相当于普通无线路由器的 WAN接口,无线网卡就负责发送广播无线信号供手机、笔记本的无线设备接入实现网络访问。
但也有区别的地方就是跟普通无线路由器相比,这种实现方式没有四个普通的 LAN接口,不能供其它台式机等进行有线连接。
实际上 linux作为网络功能为主的操作系统也是可以连接的,只是需要交换机等设备等,会复杂些。我这里的配置就当作是没有四个 LAN接口的普通无线路由器。
hostapd.conf配置
这里只是一个最小化的配置:
#/etc/hostapd/hostapd.conf最小化配置
interface=wlp2s0
#bridge=br0#不再需要桥接,将这行注释就可以
driver=nl80211
ssid=test
hw_mode=g
channel=1
auth_algs=3
ignore_broadcast_ssid=0#是否广播,0广播
wpa=3
wpa_passphrase=12345678#无线连接密码
配置跟AP模式配置文件类似,只要注释掉 bridge=br0选项就可以。
有线接口配置
首先我们需要正确配置有线接口并且可以正常上网。最简单的是方式就是从路由器那自动获取IP地址、网关、DNS。如果没有路由器的话那就需要手动设置有线接口的上网方式,例如常用的PPPOE方式、静态IP地址方式、动态获取IP地址方式等。反正动态获取IP地址的最简单。
无线接口设置使用 ip addr add命令
使用 ip addr add命令设置无线网卡的IP地址,重启后就会失效。例如172.16.0.1/24或其他私有地址,还有就是不要与有线网卡处在同一个网段。一般有线网卡从路由器获取的IP地址是 192.168.1.0/24网段地址。
ipaddradd172.16.0.1/24devwlp2s0
坑提示:目前 CentOS 7默认使用的是 NetworkManager套件作为网络配置工具。这里遇到一个问题就是,NetworkManager套件其提供的 nmcli命令并不支持给无线网卡设置静态的 IP地址,这就需要使用 ip addr add命令手动设定无线网卡的 IP地址或者在/etc/sysconfig/network-scripts/文件夹下面新建配置文件,这是比较老且经典的一种接口配置方式。
使用网络配置文件
如要想想保存设置,可以新建一个文件/etc/sysconfig/network-scripts/ifcfg-static-wlp2s0,文件名以 ifcfg前缀。
vi/etc/sysconfig/network-scripts/ifcfg-static-wlp2s0
[root@server~]#vi/etc/sysconfig/network-scripts/ifcfg-static-wlp2s0
#TYPE=Ethernet
#BOOTPROTO=none
#DEFROUTE=yes
#IPV4_FAILURE_FATAL=no
#IPV6INIT=yes
#IPV6_AUTOCONF=yes
#IPV6_DEFROUTE=yes
#IPV6_FAILURE_FATAL=no
#NAME=static-wlp2s0
#UUID=a036678e-8fdf-48f3-8693-961bb6326i744
DEVICE=wlp2s0#指定无线网卡的接口
ONBOOT=yes#开机就进行设置
IPADDR=172.16.0.1#指定IP地址
PREFIX=24#指定掩码长度
#GATEWAY=192.168.10.254#其他用不着注释掉
#DNS1=127.0.0.1
#DNS2=192.168.10.254
#IPV6_PEERDNS=yes
#IPV6_PEERROUTES=yes
保存后需要先停止 NetworkManager.service服务,最好禁止开机启动,不然还是会有问题。主要表现为开机时 network.service无法启动。
禁止NetworkManager.service服务开机启动
systemctldisableNetworkManager.service
停止NetworkManager.service服务
systemctlstopNetworkManager.service
想看看有没有生效可以重启 network.service服务或直接重启系统。
systemctlrestartnetwork.service
启用转发和配置接口伪装启用转发
使用 sysctl-w重启后会失效
sysctl-wnet.ipv4.ip_forward=1
[root@server~]#sysctl-wnet.ipv4.ip_forward=1
net.ipv4.ip_forward=1
启用IP转发重启后不会失效使用下面方法,系统重启后会自动加载/etc/sysctl.d/文件夹下的设置。
vi/etc/sysctl.d/ip_forward.conf
[root@server~]#vi/etc/sysctl.d/ip_forward.conf
net.ipv4.ip_forward=1
配置接口伪装
CentOS 7中使用 firewalld和 iptables都能做到接口伪装。CentOS 7中默认启用的是 firewalld.service服务。iptables服务和 firewalld服务冲突,两者只能启用其中一个。
使用 firewalld配置接口伪装
如果能使用图形界面配置的话更加简单明了,这里仅使用 firewalld-cmd命令方式配置。
如果没有启动 firewalld.service服务,需要先启动 firewalld.service服务。
systemctlstartfirewalld.service
将无线接口加入到 trust区域,并保存配置。默认情况下所有接口属于 public区域,连接限制比较严格,会导致无法连接。
firewall-cmd--zone=trusted--add-interface=wlp2s0--permanent
[root@server~]#firewall-cmd--zone=trusted--add-interface=wlp2s0--permanent
success
对有线接口所在的区域启用伪装,并保存配置,默认情况下有线接口属于 public区域。
firewall-cmd--zone=public--add-masquerade--permanent
[root@server~]#firewall-cmd--zone=public--add-masquerade--permanent
success
重启 firewalld服务
systemctlrestartfirewalld.service
使用 iptables配置接口伪装
如果习惯使用 iptables,需要安装 iptables-services这个包,里面包含 iptables.service和 ip6tables.service这两个服务,分别用于 ipv4和 ipv6。
要使用 iptables需要先停止并禁用 firewalld.service服务
systemctlstopfirewalld.service
systemctldisablefirewalld.service
再启用 iptables.service服务,因为目前还是主要使用 ipv4所以只启用 iptables.service就可以。如果使用 iptables同样需要设置开机启动 iptables.service服务。
systemctlenableiptables.service
启动 iptables.service服务
systemctlstartiptables.service
接口伪装
iptables-tnat-APOSTROUTING-op2p1-jMASQUERADE
一般来说配置上面的命令就可以了,如果防火墙设置比较严格需要添加允许转发无线网卡接口wlp2s0。
iptables-tfilter-AFORWARD-iwlp2s0-jACCEPT
dnsmasq配置 dnsmasq软件安装
dnsmasq主要负责分配客户端IP地址及DNS解析服务。
没有安装的话先安装 dnsmasq软件
yuminstalldnsmasq
设置开机自动启动 dnsmasq服务
systemctlenablednsmasq.service
dnsmasq.conf配置
vi/etc/dmsmasq.conf
[root@server~]#vi/etc/dnsmasq.conf
#指定接口,指定后同时附加lo接口,可以使用'*'通配符
interface=wlp2s0
#绑定接口
bind-interfaces
#DHCP地址池从172.16.0.100到172.16.0.200
dhcp-range=172.16.0.100,172.16.0.200,255.255.255.0,1h
启动 dnsmansq服务需要无线网卡已经正确设置了 ip地址。dnsmasq会自动将当前的无线网卡地址 172.16.0.1设置为客户端的网关地址和DNS地址。
systemctlstartdnsmasq.service
最后重新启动 hostapd服务
systemctlrestarthostapd.service
Centos下配置firewalld实现nat路由转发
firewalld介绍:
nat介绍:
1.准备两台虚拟机:nat01, nat02(centos,安装时选择安装类型,nat02需要有浏览器)
2.转发用虚拟机[nat01]准备两张网卡,一张网卡与要测试环境网络互通,一张网卡与局域网虚拟机[nat02]网络互通
3.局域网虚拟机[nat02]与转发用虚拟机网络互通,相同网段,且网关为[nat01]ip地址(修改ifcfg-eth0文件后重启网络即可)
nat01:33.33.33.35 nat02:33.33.33.52
4.配置转发用虚拟机[nat01]:
step1:内核参数文件sysctl.conf配置ip转发
vi/etc/sysctl.conf
在文本内容中添加:net.ipv4.ip_forward= 1
保存文件后,输入命令sysctl-p生效
step2:开启firewalld.service
systemctl start firewalld.service#开启
systemctl enable firewalld.service#开机自启动
step3:防火墙开启伪装IP功能
firewall-cmd--add-masquerade--permanent#允许防火墙伪装IP
firewall-cmd--query-masquerade#检查是否允许伪装IP
firewall-cmd--reload#重载配置文件生效
step4:开放端口:
firewall-cmd--zone=public--add-port=10020/tcp--permanent#开放通过tcp访问10020
firewall-cmd--list-ports#查看开放端口
firewall-cmd--reload#重载配置文件生效
step5:端口转发
firewall-cmd--zone=public--add-forward-port=port=10020:proto=tcp:toport=443:toaddr=192.25.1.2--permanent
#将10020端口的流量转发到192.25.1.2:443
firewall-cmd--reload
ps:zone=external针对伪装进入连接,一般用于路由转发
--permanent永久生效
192.25.1.2:443修改为需要访问环境的IP和开放端口
5.测试
登录[nat02]虚拟机,进入ssh终端,wget 33.33.33.35:10020
进入浏览器,访问:33.33.33.35:10020 --》自动跳转到环境地址,访问正常
ps:若需要访问地址是https,则在浏览器中输入:
在CentOS的防火墙上开启通行端口的方法
如果希望在服务器上提供服务,诸如CentOS或RHEL的企业级Linux发行版包含内置的强大防火墙,它们默认的防火墙规则十分严格。因此,如果你安装了任何定制的服务(比如web服务器、NFS和Samba),那么它们的流量很有可能被防火墙规则阻塞。所以需要在防火墙上开启必要的端口以允许流量通过。
在CentOS/RHEL 6或更早的版本上,iptables服务允许用户与netfilter内核模块交互来在用户空间中配置防火墙规则。然而,从CentOS/RHEL 7开始,一个叫做firewalld新用户空间接口被引入以取代iptables服务。
使用这个命令察看当前的防火墙规则:
代码如下:
$ sudo iptables-L
现在,让我们看看如何在CentOS/RHEL上修改防火墙来开启一个端口。
在CentOS/RHEL 7上开启端口
启动CentOS/RHEL 7后,防火墙规则设置由firewalld服务进程默认管理。一个叫做firewall-cmd的命令行客户端支持和这个守护进程通信以永久修改防火墙规则。
使用这些命令来永久打开一个新端口(如TCP/80)。
代码如下:
$ sudo firewall-cmd--zone=public--add-port=80/tcp--permanent
$ sudo firewall-cmd--reload
如果不使用“--permanent”标记,把么防火墙规则在重启后会失效。
在CentOS/RHEL 6上开启端口
在CentOS/RHEL 6甚至更早版本系统上,iptables服务负责维护防火墙规则。
使用iptables的第一条命令可以通过防火墙开启一个新TCP/UDP端口。为了永久保存修改过的规则,还需要第二条命令。
代码如下:
$ sudo iptables-I INPUT-p tcp-m tcp--dport 80-j ACCEPT
$ sudo service iptables save
另一种方法是通过一个名为system-config-firewall-tui的命令行用户接口(TUI)的防火墙客户端。
代码如下:
$ sudo system-config-firewall-tui
选择位于中间的“Customize”按钮,按下ENTER键即可。
如果想要为任何已知的服务(如web服务器)修改防火墙,只需勾选该服务,然后关闭工具。如果想要开启任意一个TCP/UDP端口,选择“Forward”按钮,然后进入下一个界面。
选择“Add”按钮添加一条新规则。
指定一个端口(如80)或者端口范围(如3000-3030)和协议(如tcp或udp)。
最后,保存修改过的配置,关闭工具。这样,防火墙就永久保存了。