当前位置:首页 > 服务器 > 正文

服务器双线接入配置(服务器配置双网关)

本篇文章给大家谈谈服务器双线接入配置,以及服务器配置双网关对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

一台服务器如何做到多网络线路接入?

TCP协议:服务器端:tcp_server.c[cpp]viewplaincopyprint?#include#include#include#include#includeintmain(intargc,char*argv[]){intserver_sockfd;//服务器端套接字intclient_sockfd;//客户端套接字intlen;structsockaddr_inmy_addr;//服务器网络地址结构体structsockaddr_inremote_addr;//客户端网络地址结构体intsin_size;charbuf[BUFSIZ];//数据传送的缓冲区memset(my_addr,0,sizeof(my_addr));//数据初始化--清零my_addr.sin_family=AF_INET;//设置为IP通信my_addr.sin_addr.s_addr=INADDR_ANY;//服务器IP地址--允许连接到所有本地地址上my_addr.sin_port=htons(8000);//服务器端口号/*创建服务器端套接字--IPv4协议,面向连接通信,TCP协议*/if((server_sockfd=socket(PF_INET,SOCK_STREAM,0))0)){buf[len]='/0';printf("%s/n",buf);if(send(client_sockfd,buf,len,0)#include#include#include#includeintmain(intargc,char*argv[]){intserver_sockfd;//服务器端套接字intclient_sockfd;//客户端套接字intlen;structsockaddr_inmy_addr;//服务器网络地址结构体structsockaddr_inremote_addr;//客户端网络地址结构体intsin_size;charbuf[BUFSIZ];//数据传送的缓冲区memset(my_addr,0,sizeof(my_addr));//数据初始化--清零my_addr.sin_family=AF_INET;//设置为IP通信my_addr.sin_addr.s_addr=INADDR_ANY;//服务器IP地址--允许连接到所有本地地址上my_addr.sin_port=htons(8000);//服务器端口号/*创建服务器端套接字--IPv4协议,面向连接通信,TCP协议*/if((server_sockfd=socket(PF_INET,SOCK_STREAM,0))0)){buf[len]='/0';printf("%s/n",buf);if(send(client_sockfd,buf,len,0)#include#include#include#includeintmain(intargc,char*argv[]){intclient_sockfd;intlen;structsockaddr_inremote_addr;//服务器端网络地址结构体charbuf[BUFSIZ];//数据传送的缓冲区memset(remote_addr,0,sizeof(remote_addr));//数据初始化--清零remote_addr.sin_family=AF_INET;//设置为IP通信remote_addr.sin_addr.s_addr=inet_addr("127.0.0.1");//服务器IP地址remote_addr.sin_port=htons(8000);//服务器端口号/*创建客户端套接字--IPv4协议,面向连接通信,TCP协议*/if((client_sockfd=socket(PF_INET,SOCK_STREAM,0))#include#include#include#includeintmain(intargc,char*argv[]){intclient_sockfd;intlen;structsockaddr_inremote_addr;//服务器端网络地址结构体charbuf[BUFSIZ];//数据传送的缓冲区memset(remote_addr,0,sizeof(remote_addr));//数据初始化--清零remote_addr.sin_family=AF_INET;//设置为IP通信remote_addr.sin_addr.s_addr=inet_addr("127.0.0.1");//服务器IP地址remote_addr.sin_port=htons(8000);//服务器端口号/*创建客户端套接字--IPv4协议,面向连接通信,TCP协议*/if((client_sockfd=socket(PF_INET,SOCK_STREAM,0))#include#include#include#includeintmain(intargc,char*argv[]){intserver_sockfd;intlen;structsockaddr_inmy_addr;//服务器网络地址结构体structsockaddr_inremote_addr;//客户端网络地址结构体intsin_size;charbuf[BUFSIZ];//数据传送的缓冲区memset(my_addr,0,sizeof(my_addr));//数据初始化--清零my_addr.sin_family=AF_INET;//设置为IP通信my_addr.sin_addr.s_addr=INADDR_ANY;//服务器IP地址--允许连接到所有本地地址上my_addr.sin_port=htons(8000);//服务器端口号/*创建服务器端套接字--IPv4协议,面向无连接通信,UDP协议*/if((server_sockfd=socket(PF_INET,SOCK_DGRAM,0))#include#include#include#includeintmain(intargc,char*argv[]){intserver_sockfd;intlen;structsockaddr_inmy_addr;//服务器网络地址结构体structsockaddr_inremote_addr;//客户端网络地址结构体intsin_size;charbuf[BUFSIZ];//数据传送的缓冲区memset(my_addr,0,sizeof(my_addr));//数据初始化--清零my_addr.sin_family=AF_INET;//设置为IP通信my_addr.sin_addr.s_addr=INADDR_ANY;//服务器IP地址--允许连接到所有本地地址上my_addr.sin_port=htons(8000);//服务器端口号/*创建服务器端套接字--IPv4协议,面向无连接通信,UDP协议*/if((server_sockfd=socket(PF_INET,SOCK_DGRAM,0))0){perror("socket");return1;}/*将套接字绑定到服务器的网络地址上*/if(bind(server_sockfd,(structsockaddr*)my_addr,sizeof(structsockaddr))0){perror("bind");return1;}sin_size=sizeof(structsockaddr_in);printf("waitingforapacket/n");/*接收客户端的数据并将其发送给客户端--recvfrom是无连接的*/if((len=recvfrom(server_sockfd,buf,BUFSIZ,0,(structsockaddr*)remote_addr,sin_size))0){perror("recvfrom");return1;}printf("receivedpacketfrom%s:/n",inet_ntoa(remote_addr.sin_addr));buf[len]='/0';printf("contents:%s/n",buf);close(server_sockfd);return0;}

双路服务器配置

主板: C692主板双路x79( 8插槽 内存/16插槽超微x9dri/富士康 pci16 1和8 1 ) 800元

cpu: e5系列 400x2=800元

内存: ecc服务器内存32g/根 300x8=2400元

散热器: 6铜管散热 50x2=100元

电源: 750w 500元

硬盘: 512g 400元

显卡: (亮机卡20元)太贵了暂时买不起也没需求

机箱+鼠标+键盘+显示屏 捡垃圾200元

总计:5200元 (16核32线2.6~3.2ghz;256g内存)

未来可升级:

显卡 11GGeForce 2060ti (8000x2=1.6万元)

硬盘:+900 nvme 1T 国产海康威视

16插槽主板(+1200) 内存(+2400)

Get in touch with me

18234056952(wechat)

ROS双线接入,一条固定IP,电信的,一条联通的ADSL,如何设置?

1. 设定PPPOE拨号:接口——Wan1(右键)——PPPOE客户端

普通的——名称——“pppoe-out1”——接口程序——wan1

拨出——填上adsl1的用户名和口令,勾选添加默认路由和使用同等dns。

最后按ok结束。然后设定第二条adsl,名称为"pppoe-out2",接口程序为wan2,只勾选添加默认路由。

2. 设定内网共享

(1)IP——防火墙——NAT,添加两条规则

第一条:普通的——链——(srcnat)——输出接口——(lan)将前面的方块点上!号

作用——(masquerade)

第二条:普通的——链——(srcnat)——源地址——“192.168.0.0/24”(这是内网的ip,按自己实际情况修改)

作用——(masquerade)

(2)IP——防火墙——Mangle,每条adsl添加两条规则

第一条:普通的——(forward)——协议——(6 (tcp))——接入接口——(pppoe-out1)

高级的——Tcp 标记——(syn)

作用——作用——(change MSS)——新的TCP MSS——“1440”

第二条:普通的——(forward)——协议——(6 (tcp))——输出接口——(pppoe-out1)

高级的——Tcp 标记——(syn)

作用——作用——(change MSS)——新的TCP MSS——“1440”

多条adsl以此类推。

到这一步已经可以共享上网了,不过要实现分流等功能还要继续。

3.设置ip地址

ip——地址 增加两个新的地址

第一个是pppoe-out1拨号后得到的外网ip,地址、网络、广播都填这个ip,借口选(pppoe-out1),注释为1。

第二个同理,全部为pppoe-out2的ip,注释为2。

主要目的是让路由能够找到自动添加的路由网关。

4.添加路由网关

ip——路由 增加三个网关

第一个:制定:0.0.0.0/0 网关:(pppoe-out1的ip) 标志:1 注释:1

第二个:制定:0.0.0.0/0 网关:(pppoe-out2的ip) 标志:2 注释:2

第三个:制定:0.0.0.0/0 网关:(pppoe-out2的ip) 注释:2

第三个网上说是官方推荐增加的,具体原理现在不是太清楚。

5.双线负载规则

ip——防火墙——mangle 两条线就是增加四条规则,每两条为一对

第一组:第一条:普通的——链——(prerouting)——接入接口——(lan)——连接情形——(new)

附加——Nth——三个框分别是“1、1、0”

作用——作用——(mark connection)——新的连接标记——“1”

第二条:普通的——链——(prerouting)——接入接口——(lan)——连接标志——“1”

作用——作用——(mark routing)——新的路由标记——“1”

第二组:第一条:普通的——链——(prerouting)——接入接口——(lan)——连接情形——(new)

附加——Nth——三个框分别是“1、1、1”

作用——作用——(mark connection)——新的连接标记——“2”

第二条:普通的——链——(prerouting)——接入接口——(lan)——连接标志——“2”

作用——作用——(mark routing)——新的路由标记——“2”

这样就实现了双线平衡负载。

6.指定机器分流

如果要指定某些机器使用特定的线路访问外网,只要改造一下上面的规则就可以了,例如加上源地址。但是需要特别说明的是,这里的规则每一条的优先级都是一样的,而不是像防火墙过滤规则里那样是从上至下的,也就是说如果你设定的两个规则存在重复的部分,例如同样一个ip出现在两个规则里,那样就表明同时适用这两个规则,具体到底用哪个规则,就试验的情况看似会是交替其作用,所以应该尽量避免这种情况以避免不确定的事情发生。

7.自动更新网关的脚本

由于adsl拨号后ip会随即改变,这就需要定时监测ip的变化,在系统——脚本中添加下列脚本,名字这里设定为sadsl

:local assign-address

:local new-address

:local status

:local x

:set x 2

:for i from=1 to=$x do={

:set status [/interface get [/interface find name=("pppoe-out" . $i)] running]

:if ($status=true) do={

:set new-address [/ip address get [/ip address find dynamic=yes interface=("pppoe-out" . $i)] address]

:set new-address [:pick $new-address 0 ([:len $new-address] -3)]

:set assign-address [/ip address get [/ip address find dynamic=no interface=("pppoe-out" . $i)] address]

:set assign-address [:pick $assign-address 0 ([:len $assign-address] -3)]

:if ($assign-address != $new-address) do={ /ip address set [/ip address find comment=$i] address=$new-address network=$new-address broadcast=$new-address

/ip route set [/ip route find comment=$i] gateway=$new-address

/ip fir nat set [/ip fir nat find comment=$i] to-addresses=$new-address

/ip route set [/ip route find comment=$i] gateway=$new-address

}

}

}

这个脚本同样适用2线以上的情况,只要改一下x的值。

在系统——调度程序中增加一个调度程序,间隔里输入具体的间隔时间,可以根据实际情况设定,但不建议设的间隔过长,因为时间过长的话重新拨号后就要等很久才能重新上网。而间隔时间过短的话又会造成路由器不停的查询ip加重服务器负担。

确定后整个设定就完成了。

服务器双线接入配置的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于服务器配置双网关、服务器双线接入配置的信息别忘了在本站进行查找喔。

取消
扫码支持 支付码