如何在Linux下配置TCP/IP?
Red Hat 7.0 中负责网络接口的配置文件 ·使用 ifconfig 检查和配置接口 ·添加和编辑静态路由 ·使用 netstat 对网络接口进行监视/排除故障 关键文件和脚本 网络接口初始化的实际过程(有时也称做“启动接口”)是由一组配置文件和脚本控制的,这些文件和脚本大多数在etc 目录下。
这些配置文件告诉 Linux 它的 IP 地址、主机名和域名;脚本则负责网络接口的初始化。
遗憾的是,不同分发版(distiution)中文件位置和命名约定至今还没有统一的标准。
为给本文提供具体的示例,将基于广泛使用的 Red Hat 7.0 包做出描述。
请记住,若您的分发版不是使用 Red Hat 或不是基于 Red Hat 约定(如 Mandake 分发版),在此所引用的一些文件会位于别的目录中或有其它的名称。
然而,网络效果和实际效果是一样的 — 将存储在一系列配置文件中的网络信息传递给脚本,然后用脚本初始化接口和网络路由。
涉及初始化和配置网络接口的关键文件有: ·etchosts (将主机名映射到 IP 地址) ·etcnetwoks (将域名映射到网络地址) ·etcsysconfignetwok (打开或关闭联网,设置主机名和网关) ·etcesolv.conf (设置名称服务器或 DNS 服务器的 IP 地址) ·etcc.dc3.dS10netwok (在引导时激活已配置的以太网接口,由运行级别目录 etcc.dcN.d 中的符号链接调用) ·etcsysconfignetwok-scipts 中一些文件的集合。
这些文件包括用于网络连接的主要配置,以及提供接口状态和控制功能的符号链接。
etchosts etchosts 是将 IP 地址和主机名联系起来的简单文本文件。
TCPIP 网络中的每台计算机都必须有唯一的 IP 地址。
hosts 文件只允许用户将主机名与 IP 地址联系起来,以便当访问计算机时使用该名称,而不用输入一长串数字。
etchosts 中的每一项都依次包含一个 IP 地址、空白和主机名和/或别名。
井号(#)表示注释开始。
例如: # etchosts # last updated 1232000 127.0.0.1 loopack localhost # loopack (lo0) nameaddess 192.168.1.5 janus.syoidmano.com janus 192.168.1.6 thumpe.syoidmano.com thumpe 192.168.1.7 donovan.syoidmano.com donovan 192.168.1.8 aidseve 192.168.1.20 phoenix.syoidmano.com phoenix 192.168.1.15 hydas.syoidmano.com hydas 在上面显示的 Hosts 文件中,IP 地址 192.168.1.5 映射到主机 janus.syoidmano.com ,并且分配给它一个备用主机名(或别名)janus。
尽管 DNS 已经取代了这个主机文件,但出于以下原因仍然使用它: ·大多数系统都有一个包含本地网络上的关键主机的名称和地址信息的小主机表。
当 DNS 未运行时,例如,在最初系统启动期间,则使用该表。
即便本地 DNS 服务器正在运行,在每个系统上也应该有一个小 hosts 文件,该文件包含一个主机本身项、一个 localhost 项以及局域网上任何主要的网关和服务器项。
·未连接到因特网或其他网络的小网络不需要 DNS 服务。
然而,这些网络上的主机也需要知道如何定位同一网络上的其它主机。
etcnetwoks 就如主机有名称和地址一样,为方便起见,也可以为网络和子网命名。
etcnetwoks 文件在布局上与 etchosts 很相似,只不过名称和地址互换了一下。
# etcnetwoks fo syoidmano.com localnet 127.0.0.0 #loopack syoid-C1 192.168.1 #development, class C syoid-C2 192.168.2 #suppot, class C 在上面的示例中,可将网络名称 syoid-C1 用于脚本或任何命令行实用程序中来引用 192.168.1 这个 C 类网。
etcsysconfignetwok 将 etcsysconfignetwok(注意与 etcnetwoks 文件不同,这个 netwok 是单数而不是复数)用于指定所期望的网络配置信息;在引导时,有几个脚本要使用它。
该文件可以包含下列所示的一个或多个关键字/值对: NETWORKING=YES|NO -- YES 表示需要配置网络;NO 表示不需要配置网络。
HOSTNAME=hostname — 主机的全限定域名;为与较老的程序兼容,这应该与在 etchosts 中的主机项相匹配。
GATEWAY=gw-ip — 网络网关的 IP 地址。
GATEWAYDEV=gw-dev — 网关设备的名称(例如 eth0)。
NISDOMAIN=dom-name — 表示 NIS 域,如果有的话。
LINUX中提供TCP/IP包过滤的软件叫什么?
his paper studies the design of embedded platform based on Linux digital radio server software,is an embedded system technology,introducing a new application an ARM platform and embedded Linux operating system,analysis,combined with Linux TCP communication principle of Socket multithreaded programming and TCP data transfer protocol design communication server.In this foundation admiral server program transplanted into development board and realizing the communication program in the serial communication on development board.
LINUX网络编程TCP的服务器 客户端 有乱码怎么解决?
1.可能是在获取客户端的ip和端口时,处理出现问题,导致无法正确发送到客户端。
2.客户端是否使用固定的端口来接收服务器信息,或服务器是否正确发送到客户端的相应的端口。
3.通过上面分析,最大可能是在处理端口出现问题,请重新检查。
4.实在不行,最好使用抛出异常方法来捕获错误消息,或是通过一步一步调试分析数据发送过程。
Linux操作系统的TCP/IP协议栈是什么?
分析tcp_v4_init,这个函数在netipv4tcp_ipv4.c里面: __initfunc(voidtcp_v4_init(stuctnet_poto_family*ops)){inte;tcp_inode.i_mode=S_IFSOCK;tcp_inode.i_sock=1;tcp_inode.i_uid=0;tcp_inode.i_gid=0;tcp_socket-inode=&tcp_inode;tcp_socket-state=SS_UNCONNECTED;tcp_socket-type=SOCK_RAW;if((e=ops-ceate(tcp_socket,IPPROTO_TCP))sk-allocation=GFP_ATOMIC;tcp_socket-sk-num=256;tcp_socket-sk-ip_ttl=MAXTTL;} tcp_inode当然就是一个inode节点了,而tcp_socket等于tcp_inode.u.socket_i,通过一个指针他们指向同一个内存。
tcp_socket是用来通信使用的,可以叫TCP的contolsocket或者是communication socket,当TCP通信没有相应的socket的时候这个socket就充当了socket的角色。
比如在一个关闭端口上收到SYN时发送RST,或者是在三次握手的时候发送SYN(还没有accept产生新的socket) 值得注意的是ops-ceate函数的调用,我们前面见过对于AF_INET来说这个回调函数是netipv4af_inet.c的inet_ceate函数,这个函数是用来创建一个socket的时候用的,由于函数比较长,这里先略过分析,这第一次的分析只是一个大致流程的熟悉而已。
由于有socket创建和通信,所以这段代码是协议相关的,所以把这段代码从原来的tcp.c里面提取了出来 下面是tcp_init函数,它在netipv4tcp.c里面,大体上来说就是创建了几个hash表和ucket.这段代码创建了下面几个全局对象: tcp_openeq_cacheptcp_ucket_cacheptcp_timewait_cacheptcp_ehashtcp_hash 其中ehash代表estalishedhash,hash代表indhash,它们当然分别是所有的满足TCP_ESTABLISHEDstate 再下来就是icmp_init函数了,在netipv4icmp.c里面,事实上,如果把tcp_v4_init里面的IPPROTO_TCP替换成IPPROTO_ICMP,基本都是一样的。
剩下的poc_net_egiste函数前面已经讲过了,这里就不说了。
到这里为止,Linux下面IP栈的开始的工作我们基本应该有了个了解,其中有几个关键的函数: dev_add_pack:注册一个链路层以上的处理函数,一般是用来使用新的网络层协议的,不过如果注册时重复也是可以的,这时候系统会设置一个copy位。
如果是ETH_P_ALL则会接收所有的数据包。
加入的元素保存在ptype_all链表和ptype_asehash链表中间。
inet_add_potocol:注册一个建立在IP层以上的协议,例如TCP和UDP等 poc_net_egiste(还有类似的poc_egiste): 在pocnet目录下面创建一个子目录项来使管理者能通过文件系统得到统计信息 现在迷惑的地方还有很多,一个是结构体sk_uff的每个成员的意义,一个是结构体sock的意义,不过这两个问题应该在以后看多了就知道了。
下面我就打算一个个分析每个协议的处理了,包括状态转化数据发送接收。
关于linux系统下TCP通信 服务器read函数一直读取数据却什么都读不到...
翻译自:How to Test Port[TCP/UDP] Connectivity from a Linux Server (文档 ID 2212626.1)适用于:Linux OS - Version Oracle Linux 5.0 to Oracle Linux 6.8 [Release OL5 to OL6U8]Information in this document applies to any platform.目标:在Linux服务器上检查TCP/UDP端口的连通性。
解决方案:telnet和nc 是用来测试端口连通性的一般工具。
telnet可以测试tcp端口的连通性。
nc可以测试tcp和udp端口的连通性。
请确保telnet和nc工具已经安装在CODE上查看代码片派生到我的代码片# yum install nc# yum install telnet 测试tcp端口的连通性:语法如下:在CODE上查看代码片派生到我的代码片telnet 如下是连通成功的例子:在CODE上查看代码片派生到我的代码片# telnet 192.118.20.95 22Trying 192.118.20.95...Connected to 192.118.20.95.Escape character is '^]'.SSH-2.0-OpenSSH_6.6.1Protocol mismatch.Connection closed by foreign host. 如下是连通不成功的例子:在CODE上查看代码片派生到我的代码片# telnet 192.118.20.95 22Trying 192.118.20.95...telnet: connect to address 192.118.20.95: No route to host 使用nc命令来测试tcp端口的连通性:语法:在CODE上查看代码片派生到我的代码片nc -z -v 如下是连通成功的例子:在CODE上查看代码片派生到我的代码片# nc -z -v 192.118.20.95 22Connection to 192.118.20.95 22 port [tcp/ssh] succeeded! 如下是连通不成功的例子:在CODE上查看代码片派生到我的代码片# nc -z -v 192.118.20.95 22nc: connect to 192.118.20.95 port 22 (tcp) failed: No route to host 使用nc命令来测试udp端口的连通性:语法:在CODE上查看代码片派生到我的代码片nc -z -v -u 在CODE上查看代码片派生到我的代码片# nc -z -v -u 192.118.20.95 123Connection to 192.118.20.95 123 port [udp/ntp] succeeded! nc检测端口的用法nc -z -w 10 %IP% %PORT%-z表示检测或者扫描端口-w表示超时时间-u表示使用UDP协议
linux centOS下怎么配置web服务器
准备前的工作:1.修改selinux配置文件(/etc/sysconfig/selinux) 关闭防火墙 (1)把SELINUX=enforcing注释掉 (2)并添加SELINUX=disabled2.修改防火墙配置文件(/etc/sysconfig/iptables) 开放端口号 -A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT 打开连个常用的端口如今,Linux在Web应用越来越广,许多企业都采用Linux来搭建Web服务器,这样即节省了购买正版软件的费用,而且还能够提高服务器的安全性。
之前我们介绍了如何在openSUSE 12.1下搭建Web服务器,里面详细介绍了在openSUSE 12.1下搭建服务器的方法,其实除了Red Hat和openSUSE,CentOS也是人们经常用到的搭建Web服务器的Linux版本。
转载请注明出处51数据库 » linux tcp服务器软件
山炮555566