情丿本是债 发布的文章

聊聊重邮的内网和外网

什么是内网?

局域网(Local Area Network, LAN)

注:为了信息安全,隐藏了内网相关敏感信息,如果需要,请内网查看:

http://gogs.sret1.st.tn/SRE2017/wiki/wiki/%E8%81%8A%E8%81%8A%E9%87%8D%E9%82%AE%E7%9A%84%E5%86%85%E7%BD%91%E5%92%8C%E5%A4%96%E7%BD%91

参考链接

  1. https://zh.wikipedia.org/wiki/%E5%B1%80%E5%9F%9F%E7%BD%91
  2. https://baike.baidu.com/item/%E5%B1%80%E5%9F%9F%E7%BD%91/98626

局域网(LAN)是一个可连接住宅,学校,实验室,大学校园或办公大楼等有限区域内计算机的计算机网络 [1]。相比之下,广域网(WAN)不仅覆盖较大的地理距离,而且还通常涉及固接专线和对于互联网的链接。 相比来说互联网则更为广阔,是连接全球商业和个人电脑的系统。

按照标准,局域网被分配了指定段的IP,专门用于局域网连接,。也就是说,这些IP,在公网上是不会被使用的,你可以自由的分配使用这些IP。

  1. 10.0.0.0/8 地址范围:10.0.0.0 至 10.255.255.255 共有2的24次方个地址
  2. 172.16.0.0/12 地址范围:172.16.0.0 至 172.31.255.255 共有2的20次方个地址
  3. 192.168.0.0/16 地址范围:192.168.0.0 至 192.168.255.255 共有2的16次方个地址
  4. 100.64.0.0/16 这是留给运营商做局域网的IP段,一般我们不用

对于重邮来说,我们有一个内网,重邮内网的范围是多少呢?

(为了安全,这一段隐藏了)

其中 2 6 是符合IP分配标准的

剩下的几个呢?

其实,其中1 3 4 5 是没有问题的。

为什么呢?

因为这些公网IP其实是属于重邮的(好像是吧,第一个肯定是,后面三个好像是电信租给重邮的)

这些IP段就可以同时从公网和内网访问

这些IP通过内网直连,而不绕行公网,是有好处的。

  1. 他可以节约公网流量,甚至我们不需要公网就可以打开这些网站。而且,他可以跑满带宽,这个跑满不是指的你买的带宽,而且指的网线、交换机、路由器的硬件限制。
  2. 其中类似于教务在线,为了信息安全 xxx.xxx.xxx.xxx(为了安全,这一段隐藏了) 他屏蔽了从公网来的请求

但是呢,最后的7 8 9 是有问题的,这两个段的IP 被分配给 WIFI局域网 但是他的所有者是谁呢,我们来查一下

http://rwhois.he.net/whois.php?query=172.32.0.0

OrgName:        T-Mobile USA, Inc.
OrgId:          TMOBI
Address:        12920 SE 38th Street
City:           Bellevue
StateProv:      WA
PostalCode:     98006
Country:        US
RegDate:        2003-01-02
Updated:        2017-01-28

所以,这家美国公司躺枪了,所有从我校本来应该访问到美国的流量,居然被指向了内网。

那,我们能怎么办呢?我们只能在心里画圈圈。

聊完这些,我们来谈谈如何连接内网:

附:有些说寝室网线插上没网的,寝室只有一根网线是入户线,很多寝室室内提前安好三根分线,需要自己接交换机。

没办网或者电信用户教程

第一步:把寝室入户的网线插入交换机(还有些人喜欢叫他分线器)如果你寝室里只有里一个人用网线,你也可以不插交换机

第二步:从交换机接一根线到你的电脑里

大功告成了,剩下的IP地址分配等事情,内网上的DHCP服务器会帮你解决好。(有些楼栋的DHCP服务器无法为linux系统分配IP,这个有点迷,无解。。。)

没办电信网?不存在的,都说了内网不收费的,插上网线就能用。
如果里有电信网,也是直接使用内网就OK了,没有影响,电信客户端会帮你解决这些问题。

移动和联通用户如何使用呢?(或者手机开热点)

1. 断开电脑所有连接(这是为了好找活动连接,如果自己找得到,可以不用全部断开),插上移动网卡并连接网络(或者连接上手机热点)
2. 修改移动网卡的跃点数
进入相关设备的网络设置,再进入internet TCP/IP的属性设置,再进入高级属性设置

默认情况下是勾选的“自动跃点”,不要选择它,手动输入“接口跃点数”:10。

输入的数字越小,优先级越高,这样可以手动控制哪个路由的优先级了
然后插上寝室网线
3. 先下载脚本,然后插上内网网线,最后执行内网路由表修改脚本

(外网下载地址:(为了安全,这一段隐藏了))

自动检测服务器使用流量并执行命令脚本

#coding=utf-8

limit_total=0# limit_total 上传+下载的流量限制,单位GB,如果不限制就是0,如果限制1T就是1024
limit_in=0# limit_in 下载的流量限制,单位GB,如果不限制就是0,如果限制1T就是1024
limit_out=0# limit_out 上传的流量限制,单位GB,如果不限制就是0,如果限制1T就是1024
sleep=60#多久检查一次,单位是秒


import os
import time
NET_IN = 0
NET_OUT = 0

while True:
    vnstat=os.popen('vnstat --dumpdb').readlines()
    for line in vnstat:
        if line[0:4] == "m;0;":
            mdata=line.split(";")
            NET_IN=int(mdata[3])/1024
            NET_OUT=int(mdata[4])/1024
            break

    kill="这里写你要执行的命令"
    if (limit_total != 0 and (NET_IN+NET_OUT)>=limit_total):
        os.system(kill)
        break
    elif (limit_in != 0 and NET_IN>=limit_in):
        os.system(kill)
        break
    elif (limit_out != 0 and NET_OUT>=limit_out):
        os.system(kill)
        break

    time.sleep(sleep)



yum install -y epel-release yum install -y vnstat service vnstat start
chkconfig vnstat on

nohup python xxx.py &

ubuntu 16.04 磁盘RAID 挂载 mdadm

在没有硬件RAID卡的情况下,我们有时候需要使用软RAID来处理一些简单需求,这其中主要是RAID 1 和 RAID 0 。其他更多的RAID模式,由于涉及到大量的运算工作,计算性能、内存,甚至供电保护都有要求,还是是建议使用专业的RAID卡来处理这些问题。

lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT

首先,通过上面这个指令,查看磁盘的使用情况

mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/sda /dev/sdb

/dev/md0 是设备名 到时候会用这个挂载
level 是等级,RAID几就是 几

后面是磁盘数量和磁盘 可以用物理磁盘,也可以是逻辑分区

cat /proc/mdstat  #查看所有RAID阵列的大概情况
mdadm -D /dev/md0 #查看某个RAID阵列的详细情况

openwrt 关闭 mppe加密提高效率

mppe加密在有些环境可以加密信息流,但是在特定的环境下,我们不需要这些特性,只需要更快的速度,特别是对于ARM 构架的设备来说,加密解密的性能消耗还是太大。所以我们要关掉它。

1.关闭服务器端加密

vim /etc/ppp/options.pptpd
注释 require-mppe-128

2.关闭openwrt 客户端加密

vim options.pptp
注释 #mppe required,no40,no56,stateless

注:估计还有个NOMPPE参数,可以达到可选加密,暂时没去看

IPTABLES端口转发,适用于各种你需要的环境

经常会用到端口转发来满足隐藏服务器,提升网速等各种需求
1、开启IP_FORWARD

vi /etc/sysctl.conf
#在文件末添加以下一行(如已有则不必添加)
net.ipv4.ip_forward=1

2、使用IPTABLES,转发TCP、UDP流量

iptables -t nat -A PREROUTING -p tcp --dport 12XXX -j DNAT --to-destination 1.2.x.x:666
iptables -t nat -A POSTROUTING -p tcp -d 1.2.x.x:666 --dport 12XXX -j SNAT --to-source 127.0.x.x

iptables -t nat -A PREROUTING -p udp --dport 12XXX -j DNAT --to-destination 1.2.x.x:666
iptables -t nat -A POSTROUTING -p udp -d 1.2.x.x:666 --dport 12XXX -j SNAT --to-source 127.0.x.x

其中 1.2.x.x:666 是被转发服务器的IP与端口,127.0.x.x是本机的公网IP。

3.命令持久化

#这里使用 iptables-persistent 保存iptables配置
apt-get install iptables-persistent
netfilter-persistent save

reboot



一 从一台机到另一台机端口转发  
启用网卡转发功能  
#echo 1 > /proc/sys/net/ipv4/ip_forward  
举例:从192.168.0.132:21521(新端口)访问192.168.0.211:1521端口  
a.同一端口转发(192.168.0.132上开通1521端口访问 iptables -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 1521 -j ACCEPT)  
iptables -t nat -I PREROUTING -p tcp --dport 1521 -j DNAT --to 192.168.0.211  
iptables -t nat -I POSTROUTING -p tcp --dport 1521 -j MASQUERADE  
b.不同端口转发(192.168.0.132上开通21521端口访问 iptables -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21521 -j ACCEPT)  
iptables -t nat -A PREROUTING -p tcp -m tcp --dport 21521 -j DNAT --to-destination 192.168.0.211:1521  
iptables -t nat -A POSTROUTING -s 192.168.0.0/16 -d 192.168.0.211 -p tcp -m tcp --dport 1521 -j SNAT --to-source 192.168.0.132  
  
以上两条等价配置(更简单[指定网卡]):  
iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 31521 -j DNAT --to 192.168.0.211:1521  
iptables -t nat -A POSTROUTING -j MASQUERADE  
保存iptables  
#service iptables save  
#service iptables restart  
二 用iptables做本机端口转发  
代码如下:  
  iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080  
估计适当增加其它的参数也可以做不同IP的端口转发。  
如果需要本机也可以访问,则需要配置OUTPUT链(********特别注意:本机访问外网的端口会转发到本地,导致访不到外网,如访问yown.com,实际上是访问到本地,建议不做80端口的转发或者指定目的 -d localhost):  
  iptables -t nat -A OUTPUT -d localhost -p tcp --dport 80 -j REDIRECT --to-ports 8080  
原因:  
外网访问需要经过PREROUTING链,但是localhost不经过该链,因此需要用OUTPUT。  

echo 1 > /proc/sys/net/ipv4/ip_forward

将本地接口IP 61.144.14.72 的3389端口 转发到 116.6.73.229的3389
(主要访问到61.144.14.72的3389端口,就会跳转到116.6.73.229的3389)

【步骤】

1、 首先应该做的是/etc/sysctl.conf配置文件的 net.ipv4.ip_forward = 1 默认是0 这样允许iptalbes FORWARD。

2、 service iptables stop 关闭防火墙

3、 重新配置规则

iptables -t nat -A PREROUTING --dst 61.144.14.72 -p tcp --dport 3389 -j DNAT --to-destination 116.6.73.229:3389
iptables -t nat -A POSTROUTING --dst 116.6.73.229 -p tcp --dport 3389 -j SNAT --to-source 61.144.14.72

service iptables save
将当前规则保存到 /etc/sysconfig/iptables
若你对这个文件很熟悉直接修改这里的内容也等于命令行方式输入规则。

5、 启动iptables 服务, service iptables start
可以写进脚本,设备启动自动运行;

vi /etc/rc.local

!/bin/sh

This script will be executed after all the other init scripts.

You can put your own initialization stuff in here if you don't

want to do the full Sys V style init stuff.

touch /var/lock/subsys/local

sh /root/myshipin.log

vi myshipin.log

!/bin/sh

This script will be executed after all the other init scripts.

You can put your own initialization stuff in here if you don't

want to do the full Sys V style init stuff.

iptables -F -t nat iptables -t nat -A PREROUTING --dst 61.144.14.72 -p tcp --dport 3389 -j DNAT --to-destination 116.6.73.229:3389
iptables -t nat -A POSTROUTING --dst 116.6.73.229 -p tcp --dport 3389 -j SNAT --to-source 61.144.14.72
~


TCP
iptables -t nat -A PREROUTING --dst 61.144.14.87 -p tcp --dport 9304 -j DNAT --to-destination 10.94.143.204:9304
iptables -t nat -A POSTROUTING --dst 10.94.143.204 -p tcp --dport 9304 -j SNAT --to-source 61.144.14.87
UDP
iptables -t nat -A PREROUTING --dst 61.144.14.87 -p udp --dport 9305 -j DNAT --to-destination 10.94.143.204:9305
iptables -t nat -A POSTROUTING --dst 10.94.143.204 -p udp --dport 9305 -j SNAT --to-source 61.144.14.87

在ubuntu中由于不存在 /etc/init.d/iptales文件,所以无法使用service等命令来启动iptables,需要用modprobe命令。
启动iptables
modprobe ip_tables
关闭iptables(关闭命令要比启动复杂)
iptables -F
iptables -X
iptables -Z
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
modprobe -r ip_tables
依次执行以上命令即可关闭iptables,否则在执行modproble -r ip_tables时将会提示
FATAL: Module ip_tables is in use.