centos 组播,docker 端口映射
大家好,今天来为大家分享centos 组播的一些知识点,和docker 端口映射的问题解析,大家要是都明白,那么可以忽略,如果不太清楚的话可以看看本篇文章,相信很大概率可以解决您的问题,接下来我们就一起来看看吧!
CentOS的网络配置的命令详解
我们在进行对CentOS的网络配置时,一般会从IP地址(IPADDR)、子网掩码(NETMASK)、网关(Gateway)、主机名(HOSTNAME)、DNS服务器等方面入手。而在CentOS中,又有着不同的命令或配置文件可以完成这些配置操作,接下来,我们将从ifcfg系命令,iproute2系命令以及配置文件3个方面来简析网络配置的方法。
一、ifcfg系命令
ifcfg系命令包括ifconfig,route,netstat和hostname。
1、ifconfig命令
用来配置一个网络接口。它的使用格式如下:
a):ifconfig [-a] [interface]
-a:表示显示所有的网络接口信息,包括inactive状态的接口
~]#ifconfig-a
b):ifconfig IFACE(网络接口名,下同) IPADDR netmask NETMASK [up|down]
表示通过ifconfig命令直接修改接口的ip地址和netmask,并可启停该接口。
该命令会将配置参数立即送往内核中的TCP/IP协议栈,所以会立即生效,但是重启服务后会无效。
~]#ifconfigeth1172.16.7.14netmask255.255.0.0~]#ifconfigeth1172.16.7.14/16down
2、route命令
显示和配置ip路由表。它的使用格式如下:
a):route [-n]
表示查看全部的路由表,并以数字显示ip地址
~]#route-n
b):route add [-net|-host] target [netmask Nm] [gw Gw][[dev] If]
添加相应接口的路由
~]#routeadd-host172.16.7.14gw172.16.0.1deveth1#主机路由~]#routeadd-net172.16.7.0/24gw172.16.0.1deveth1#网段路由~]#routeadddefaultgw172.16.0.1deveth1#默认路由
c):route del [-net|-host] target [netmask Nm][[dev] If]
删除路由
~]#routedel-host172.16.7.14deveth1~]#routedel-net172.16.7.0/24deveth1~]#routedeldefaultdeveth1
3、netstat命令
显示网络连接,路由表,接口状态等。它的使用格式如下:
netstat [-n] [-r] [-p] [-e] [-a] [--tcp|-t] [--udp|-u] [--raw|-w] [--listening|-l] [-i] [-I]
-n:以数字格式显示ip和端口号,不做地址转换;
-r:显示内核路由表
-p:显示相关的进程和PID
-e:显示扩展格式
-a:显示所有的连接状态
-t:显示tcp协议的相关连接的状态
-u:显示udp协议的相关连接的状态
-w:显示raw socket相关连接的状态
-l:显示处于监听状态的连接
-i:显示所有接口状态
-I:显示特定的接口状态
以上个选项可组合使用,常用组合有-tan,-uan,-tln,-uln,-tunlp等
~]#netstat-tan~]#netstat-Ieth1
4、hostname命令
显示配置主机名。它的使用格式如下:
hostname:显示当前主机名
hostname HOSTNAME:修改当前主机名为HOSTNAME,仅当前有效,重启无效。
~]#hostname~]#hostnameTEST
5、hostnamectl命令(CentOS7新增)
显示配置主机名。它的使用格式如下:
hostnamectl [status]:显示当前主机名信息
hostnamectl set-hostname:设定主机名,永久有效
~]#hostnamectlset-hostnameCentOS7
二、iproute2系命令
iproute2系命令有ip link,ip addr,ip route,ip netns和ss等。
1、ip link命令
配置网络接口属性。它的使用格式如下:
a):ip link set [dev] IFACE [up|down] [multicast on|off] [name IFACE] [mtu NUMBER]
up and down:启动或禁止选定的网络接口
multicast on or multicast off:启动或禁止组播功能
name NAME:重命名接口(命名前需先down掉接口)
mtu NUMBER:设置接口的mtu大小,默认为1500
~]#iplinkseteth1nameeth2up~]#iplinkseteth2multicastoffmtu1000
b):ip link [show|list]
显示全部网络接口的属性。
~]#iplinkshow
2、ip addr命令
配置网络接口的ip地址。它的使用格式如下:
a):ip addr add IPADDR dev IFACE[label NAME][broadcast ADDRESS][scope SCOPE_VALUE]
增加一个ip地址。
[label NAME]:为额外添加的地址指明接口别名
[broadcast ADDRESS]:会根据ip和netmask自动计算,不用填
[scope SCOPE_VALUE]:gloal全局可用;link接口可用;host:本机可用
~]#ipaddradd172.16.7.14/24deveth1labeleth1:0
b):ip addr delete IPADDR dev IFACE
删除一个ip地址。
~]#ipaddrdel172.16.7.14/24deveth1:0
c):ip addr show [dev IFACE|label IFACE:#]
仅显示指定的接口地址。
~]#ipaddrshowlabeleth1:0~]#ipaddrshoweth1
d):ip addr flush [dev]{IFACE|label IFACE:#}
清空指定的所有地址或别名的地址。
~]#ipaddrflushlabeleth1:0~]#ipaddrflusheth1
3、ip route命令
配置接口的路由表信息。它的使用格式如下:
a):ip route addTYPE PREFIX(目标网络)via GateWay [dev IFACE] [src SOURCE_IP]
添加路由表。
~]#iprouteadd172.16.7.14via172.16.0.1deveth1~]#iprouteadd172.16.7.0/24via172.16.0.1deveth1~]#iprouteadddefaultvia172.16.0.1deveth1
b):ip route del TYPE PREFIX
删除路由表。
~]#iproutedel172.16.7.14~]#iproutedel172.16.7.0/24
c):ip route show
显示路由表。
~]#iprouteshow
d):ip route flush dev IFACE
清空指定接口的所有路由表。
~]#iprouteflushdeveth1
4、ss命令
和netstat命令一样用来查看网络状态,其选项参数和netstat命令基本相同,但是其查询速度比netstat命令要快。它的使用格式如下:
ss [options][filter]
filter:过滤器 FILTER:= [ state TCP-STATE ] [ EXPRESSION ]
选项:
-t:TCP协议的相关连接
-u:UDPF相关的连接
-w:raw socket相关的连接
-l:处于监听状态的连接
-a:所有状态
-n:以数字格式显示IP和Port
-e:扩展格式
-p:显示相关的进程及PID
-m:内存用量
-o:计时器信息
EXPRESSION:
dport:目标端口
sport:源端口
‘( dport=:22 or sport=:22)’
~]#ss-tan#查看当前网络所以tcp的连接状态
三、网络配置文件
在CentOS系统上我们可以通过对修改不同的网络配置文件来使得配置网络接口的各种属性,不过要使其永久有效,还需使内核重读修改后的配置文件。
1、IP/NETMASK/GW/DNS等属性的配置文件:
其路径为:/etc/sysconfig/network-scripts/ifcfg-IFACE
其格式为:
DEVICE:此配置文件对应的设备的名称;
ONBOOT:在系统引导过程中,是否激活此接口;
NETBOOT:是否支持网络引导;
UUID:设备的唯一标识;
IPv6INT:是否初始化IPv6;
BOOTPROTO:激活此接口时使用什么协议来配置属性,常用dhcp、bootp、static、none
TYPE:接口类型,常见的有ethernet、bridge;
DNS1:第一DNS服务器指向;
DNS2:备用DNS服务器指向;
DOMAIN:DNS搜索域;
GATEWAY:默认网关;
IPADDR:本机ip地址;
NETMASK:子网掩码;CentOS7支持使用PREFIX以长度指明子网掩码;
USERCTL:是否允许普通用户控制此设备;
PEERDNS:如果BOOTPROTO的值为“dhcp”,是否运行dhcp server分配的dns服务器指向覆盖本地手动指定的DNS服务器指向;默认为允许
HWADDR:设备的MAC地址;
NM_CONTROLLED:是否使用NetworkManager服务来控制接口;
network-scripts]#catifcfg-eth1 DEVICE="eth1" ONBOOT=yes NETBOOT=yes IPADDR=172.16.7.14 DNS=172.16.0.1 GATEWAY=172.16.0.1 NETMASK=255.255.0.0 IPV6INIT=no BOOTPROTO=none TYPE=Ethernet
2、路由的相关配置文件:
其路径为:/etc/sysconfig/network-scripts/route-IFACE
其格式为:(不可混用)
a):每行一个路由条目:
TARGET via GW
b):每三行一个路由条目:
ADDRESS#=TARGET
NETMASK#=MASK
GATEWAY#=NEXTHOP
network-scripts]#catroute-eth1 172.16.7.0/24via172.16.0.1
3、主机名的相关配置文件:
其路径为:/etc/sysconfig/network
其格式为:
HOSTNAME=
sysconfig]#catnetwork#Createdbyanaconda HOSTNAME=centos7.1
4、DNS服务器指向配置文件:
其路径为:/etc/resolv.conf
其格式为:
nameserver DNS_SERVER_IP
etc]#catresolv.conf
#GeneratedbyNetworkManager
searchmagelinux.com
nameserver172.16.0.1
四、结语
在学习Linux的路上,网络是非常重要的一环,其命令也在不断改进着,很多命令有着相同的作用,可以选择先记忆比较简单和高效的命令和参数。除上述命令之外,在CentOS7中也有着如nmtui这样直接显示图形界面的还用命令。
Tomcat9.0
j2ee服务器有哪些
众所周知,J2EE应用服务器百花齐放,种类众多。那么J2EE应用服务器有哪些?又有哪些功能呢?一起来看看吧!
从功能实现上划分:
有实现完整J2EE规范(fullprofile)的Weblogic,WebSphere,GlassFish
有实现web应用规范(webprofile)的TomEE,JBoss/WildFly
有基本的Servlet及Jsp规范的Web容器(WebContainer)Tomcat,Jetty,Resin
回顾过去的2015年,各应用服务器市场占有率各有千秋。
下图为各个应用服务器使用率饼图
我们看到,在众多J2EE应用服务器中,Tomcat使用率达到58.66%,稳坐第一。
相较2014年,Tomcat使用率大幅增长,增长将近19%。
整体而言,Tomcat做为Servlet和Jsp规范的参考实现(Referenceimplementation,简称RI),一般都会在第一时间实现规范的新特性并通过Oracle的CTS测试认证。目前最新的Tomcat9.0,虽还是alpha版,但已经实现了Servlet4.0草案,感兴趣的朋友,可以下载尝鲜哦!
Tomcat是一个实现了JAVAEE标准的最小的WEB服务器,是Apache软件基金会的Jakarta项目中的一个核心项目,由Apache、Sun和其他一些公司及个人共同开发而成。因为Tomcat技术先进、性能稳定,而且开源免费,因而深受Java爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web应用服务器。学习JavaWeb开发一般都使用Tomcat服务器,该服务器支持全部JSP以及Servlet规范,启动界面如图:
?
Tomcat是一款非常优秀的JavaWeb服务器,以致于很多开源Java应用服务器(如JOnAS)直接集成它作为servlet容器。
Tomcat的总体结构
Tomcat中主要涉及Server,Service,Engine,Connector,Host,Context组件,之前用过Tomcat的.童鞋是不是觉得这些组件的名称有点似曾相识的赶脚,没赶脚?!您再想想。好吧,不用你想了,我来告诉你吧。其实在Tomcat二进制分发包解压后,在conf目录中有一个server.xml文件,你打开它瞄两眼看看,是不是发现server.xml文件中已经包含了上述的几个名称。
Tomcat集群源码的类图
从图中我们可以看出Tomcat集群包括以下几个方面的内容:
Session:Session分为StandardSession与ClusterSession两种,后者用于Session复制。
SessionManager:有用于集群Session管理的ClusterSession,也有用于对Session进行一般日常管理的,如PersistentManager,BackupManager,SimpleTcpReplicationManager。
组通迅框架:SessionManager调用组通讯框架进行Session的传输,Tomcat采用的组通
讯框架是tribe,目前tribe已被独立为开放的apache工程。
Cluster:方便集群管理而派生出的逻辑概念,可将实际物理机划分为一个Cluster,也可将一台物理机上不同端口的实例划分为一个Cluster,它有一个简单的实现类SimpleTcpCluster。
1.1Session
服务器集群通常操纵两种session:
1.Stickysessions:尽量让同一个客户请求由同一台服务器来处理,这样stickysessions就是存在于单机服务器中接受客户端请求的session,它不需要进行Session复制,如果这个单机失败的话,用户必须重新登录网站。
2.Replicatedsessions:在一台服务器中的session状态被复制到集群的其他服务器上,无论何时,只要session改变了,session数据都要重新全部或部分(依据复制策略)被复制到其他服务器上。
Tomcat支持以下三种session持久性类型:
1.内存复制:在JVM内存中复制session状态,使用Tomcat自带的SimpleTcpCluster和SimpleTcpClusterManager类。
2.数据库持久性:在这种类型中,session状态保存在一个关系数据库中,服务器使用org.apache.catalina.session.JDBCManager类从数据库中获取Session信息。
3.基于文件的持久性:这里使用类org.apache.catalina.session.FileManager把session状态保存到一个文件系统。
SessionManager
Tomcat通过org.apache.catalina.Manager来管理Session,Manager接口总是和ContextContainer相关联。它主要负责session的建立、更新和销毁。该接口中一些重要的方法有:
用户在Servlet中通过javax.servlet.http.HttpServletRequest接口的getSession方法获得Session,而该接口的实现位于org.apache.catalina.connector.Request类中的doGetSession方法中,在该方法中通过org.apache.catalina.Manager来获得Session,doGetSession方法的部分代码如下:
组通讯框架--Tribe
组通讯框架Tribe在Tomcat中的位置可如下图
如图所示,Tribe的核心主要是Channel类,由此看出,它采用NIO进行Socket通讯,运用
了组播,事件、心跳检测等技术,下面我们来着重看看代码中Tomcat是如何与Tribe衍接首先在SimpleTcpReplication类中的实现Manager接口的start方法中:
Cluster
Cluster用于管理集群中的Session复制,它有一个简单的实现类SimpleTcpCluster。
在CentOS7上安装Tomcat9的方法教程
CentOS是Linux发行版之一,它是来自于RedHatEnterpriseLinux依照开放源代码规定释出的源代码所编译而成。接下来是我为大家收集的在CentOS7上安装Tomcat9的方法教程,希望能帮到大家。
在CentOS7上安装Tomcat9的方法教程
1通过SecureCRT连接到阿里云CentOS7服务器;
2进入到目录/usr/local/中:
cd/usr/local/
3创建目录/usr/local/tools,如果有则忽略:
mkdir-ptools
4创建/usr/local/tomcat目录,如果已存在则忽略:
mkdir-ptomcat
5进入到目录/usr/local/tools中:
cdtools/
6下载apache-tomcat-9.0.0.M4.tar.gz文件:
wget
7解压缩apache-tomcat-9.0.0.M4.tar.gz:
tar-zxvfapache-tomcat-9.0.0.M4.tar.gz
8将通过解压得到的apache-tomcat-9.0.0.M4文件复制到/usr/local/tomcat目录中:
mvapache-tomcat-9.0.0.M4../tomcat/
9打开文件/etc目录下的profile文件:
vim/etc/profile
将如下代码追加到profile文件末尾:
#idea-tomcat9configstart-2016-05-01
CATALINA_HOME=/usr/local/tomcat/apache-tomcat-9.0.0.M4
CATALINA_BASE=/usr/local/tomcat/apache-tomcat-9.0.0.M4
PATH=$PATH:$CATALINA_BASE/bin
exportPATHCATALINA_BASE
#idea-tomcat9configend-2016-05-01
保持并推出:wq!
10修改tomcat的端口号和字符编码:
进入到/usr/local/tomcat/apache-tomcat-9.0.0.M4/conf目录中:
cd../tomcat/apache-tomcat-9.0.0.M4/conf
打开tomcat服务的配置文件server.xml:
viserver.xml
找到如下代码:
将其中的8080改成HTTP协议的默认端口80,改后的代码如下:
11增加manager-gui图形化管理界面的访问权限(不需要的话,此步骤可忽略):
打开tomcat的用户配置文件tomcat-users.xml:
vitomcat-users.xml
在标签前加入如下代码:
这里设置的username和password都是password,角色为manager-gui;
键入Esc并输入“:wq!”保持并退出;
12进入到/usr/local/tomcat/apache-tomcat-9.0.0.M4/bin目录中:
cd../bin/
13打开vicatalina.sh文件:
在#OSspecificsupport.前面加入如下代码:
JAVA_HOME=/usr/local/jdk/jdk1.8.0_91
JRE_HOME=$JAVA_HOME/jre
键入Esc并输入“:wq!”保持并退出;
14启动tomcat服务:
./startup.sh
打印如下信息则表明启动Tomcat服务成功:
UsingCATALINA_BASE:/usr/local/tomcat/apache-tomcat-9.0.0.M4
UsingCATALINA_HOME:/usr/local/tomcat/apache-tomcat-9.0.0.M4
UsingCATALINA_TMPDIR:/usr/local/tomcat/apache-tomcat-9.0.0.M4/temp
UsingJRE_HOME:/usr/local/jdk/jdk1.8.0_91/jre
UsingCLASSPATH:/usr/local/tomcat/apache-tomcat-9.0.0.M4/bin/bootstrap.jar:/usr/local/tomcat/apache-tomcat-9.0.0.M4/bin/tomcat-juli.jar
Tomcatstarted.
打开浏览器输入IP地址看看吧!如果出现了我们的可爱的“小黄猫”则表明我们的Tomcat已提供服务啦!
15关闭tomcat服务:
./shutdown.sh
打印如下信息则表明关闭Tomcat服务成功:
UsingCATALINA_BASE:/usr/local/tomcat/apache-tomcat-9.0.0.M4
UsingCATALINA_HOME:/usr/local/tomcat/apache-tomcat-9.0.0.M4
UsingCATALINA_TMPDIR:/usr/local/tomcat/apache-tomcat-9.0.0.M4/temp
UsingJRE_HOME:/usr/local/jdk/jdk1.8.0_91/jre
UsingCLASSPATH:/usr/local/tomcat/apache-tomcat-9.0.0.M4/bin/bootstrap.jar:/usr/local/tomcat/apache-tomcat-9.0.0.M4/bin/tomcat-juli.jar
注意:不可连续执行多次./shutdown.sh命令,多次后报如下错误:
SEVERE:Catalina.stop:
java.net.ConnectException:Connectionrefused
atjava.net.PlainSocketImpl.socketConnect(NativeMethod)
atjava.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
atjava.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
atjava.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
atjava.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
atjava.net.Socket.connect(Socket.java:589)
atjava.net.Socket.connect(Socket.java:538)
atjava.net.Socket.(Socket.java:434)
atjava.net.Socket.(Socket.java:211)
atorg.apache.catalina.startup.Catalina.stopServer(Catalina.java:476)
atsun.reflect.NativeMethodAccessorImpl.invoke0(NativeMethod)
atsun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
atsun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
atjava.lang.reflect.Method.invoke(Method.java:498)
atorg.apache.catalina.startup.Bootstrap.stopServer(Bootstrap.java:408)
atorg.apache.catalina.startup.Bootstrap.main(Bootstrap.java:497)
16将tomcat9加入到系统服务列表中:
进入到/etc/init.d目录中:
cd/etc/init.d
创建tomcat9服务配置文件:
vitomcat9
将如下代码加入写入到tomcat9配置文件中:
#idea-tomcatconfigstart-2016-05-01
#!/bin/bash
#description:TomcatStartStopRestart
#processname:tomcat
#chkconfig:23452080
JAVA_HOME=/usr/local/tomcat/apache-tomcat-9.0.0.M4/
exportJAVA_HOME
PATH=$JAVA_HOME/bin:$PATH
exportPATH
CATALINA_HOME=/usr/local/tomcat/apache-tomcat-9.0.0.M4/
case$1in
start)
sh$CATALINA_HOME/bin/startup.sh
;;
stop)
sh$CATALINA_HOME/bin/shutdown.sh
;;
restart)
sh$CATALINA_HOME/bin/shutdown.sh
sh$CATALINA_HOME/bin/startup.sh
;;
esac
exit0
#chmod755tomcat
#chkconfig--addtomcat
#chkconfig--level2345tomcaton
#chkconfig--listtomcat
#idea-tomcatconfigend-2016-05-01
键入Esc并输入“:wq!”保持并退出;
其中的注意点是将JAVA_HOME和CATALINA_HOME变量设置成与我们当前配置相一致的路径;
17为tomcat9分配可执行权限:
chmod+xtomcat9
18将tomcat9纳入到系统的服务列表中,即添加tomcat9为系统服务:
chkconfig--addtomcat9
19查看当前系统服务都有哪些:
chkconfig--list
也可以查看指定的系统服务,如这里我们指定tomcat9这个服务:
chkconfig--listtomcat9
打印如下信息:
tomcat90:off1:off2:on3:on4:on5:on6:off
则表明已将tomcat9设置为系统服务,2、3、4、5都为on表示可随系统自动启动;
20我们可以在任意目录下执行关闭、启动、重启Tomcat9服务啦:
20.1关闭tomcat9服务:
servicetomcat9stop
20.2启动tomcat9服务:
servicetomcat9start
20.3重启tomcat9服务:
servicetomcat9restart
后记:
linux系统中的/etc目录表示“设备”,意为与硬件设备相关的信息;
/etc/init.d目录下的文件表示当前设备的初始化配置信息;
命令chkconfig表示添加(--add)、删除(--del)、查看(--list)系统服务;
看了“在CentOS7上安装Tomcat9的方法教程”还想看:
1.CentOS7安装配置图文教程
2.在CentOS7中配置NIC绑定教程
3.CentOS7设置网络自动启动教程
4.Tomcat7.0的安装与配置
5.centos7快速启动应用程序教程
如何在CentOS7上安装Tomcat9
1通过SecureCRT连接到阿里云CentOS7服务器;
2进入到目录/usr/local/中:
cd/usr/local/
3创建目录/usr/local/tools,如果有则忽略:
mkdir-ptools
4创建/usr/local/tomcat目录,如果已存在则忽略:
mkdir-ptomcat
5进入到目录/usr/local/tools中:
cdtools/
6下载apache-tomcat-9.0.0.M4.tar.gz文件:
wget
7解压缩apache-tomcat-9.0.0.M4.tar.gz:
tar-zxvfapache-tomcat-9.0.0.M4.tar.gz
8将通过解压得到的apache-tomcat-9.0.0.M4文件复制到/usr/local/tomcat目录中:
mvapache-tomcat-9.0.0.M4../tomcat/
9打开文件/etc目录下的profile文件:
vim/etc/profile
将如下代码追加到profile文件末尾:
#idea-tomcat9configstart-2016-05-01
CATALINA_HOME=/usr/local/tomcat/apache-tomcat-9.0.0.M4
CATALINA_BASE=/usr/local/tomcat/apache-tomcat-9.0.0.M4
PATH=$PATH:$CATALINA_BASE/bin
exportPATHCATALINA_BASE
#idea-tomcat9configend-2016-05-01
保持并推出:wq!
10修改tomcat的端口号和字符编码:
进入到/usr/local/tomcat/apache-tomcat-9.0.0.M4/conf目录中:
cd../tomcat/apache-tomcat-9.0.0.M4/conf
打开tomcat服务的配置文件server.xml:
viserver.xml
找到如下代码:
将其中的8080改成HTTP协议的默认端口80,改后的代码如下:
11增加manager-gui图形化管理界面的访问权限(不需要的话,此步骤可忽略):
打开tomcat的用户配置文件tomcat-users.xml:
vitomcat-users.xml
在标签前加入如下代码:
这里设置的username和password都是password,角色为manager-gui;
键入Esc并输入“:wq!”保持并退出;
12进入到/usr/local/tomcat/apache-tomcat-9.0.0.M4/bin目录中:
cd../bin/
13打开vicatalina.sh文件:
在#OSspecificsupport.前面加入如下代码: