Bootstrap

最全VPN入门教程(非常详细)零基础入门到精通,收藏这一篇就够了,金九银十Golang热点知识

img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Go语言开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取

     **en**                                                       **# 进入特权模式**

    **conf t**                                                   **# 进入全局配置模式**

    **int**  **Fa0/x​​**                                             **# 进入需要配置的端口**

    **ip add** **IP 子网掩码**                              **# 配置IP,如:  ip add 30.1.1.254 255.255.255.0**

    **no shut**                                                **# 开启端口**

2)给左右两边的路由器配置默认路由
     **命令:  
            ip route ip 子网掩码 下一跳IP  \# 给路由器配置一条静态路由**

            **ip route ip 0.0.0.0 0.0.0.0 下一跳IP   # 给路由器配置一条默认路由**

    **配置左边路由器:**

            **conf t**                          **# 进入全局配置模式** 

            **ip route** **0.0.0.0 0.0.0.0 100.1.1.254**

    **配置右边路由器:**

            **conf t**                          **# 进入全局配置模式** 

            **ip route** **0.0.0.0 0.0.0.0 200.1.1.254**

3)配置VNP隧道

注意以下的命令如果和我的模拟器配置的IP和连接的端口一样就可以复制粘贴到软件上,不同的请根据自己的实际情况,修改IP和接口号

配置左边路由器的命令

en
conf t
crypto isakmp policy 1
encryption aes
hash sha
group 2
authentication pre-share
lifetime 3600
exit
crypto isakmp key zhangsan address 200.1.1.1

access-list 100 permit ip 192.168.0.0 0.0.255.255 172.16.0.0 0.0.255.255
crypto ipsec transform-set wentran esp-aes esp-sha-hmac

crypto map wenmap 1 ipsec-isakmp
match address 100
set transform-set wentran
set peer 200.1.1.1
exit

int fa0/0
crypto map wenmap


配置右边路由器的命令

en
conf t
crypto isakmp policy 1
encryption aes
hash sha
group 2
authentication pre-share
lifetime 3600
exit
crypto isakmp key zhangsan address 100.1.1.1

access-list 100 permit ip 172.16.0.0 0.0.255.255 192.168.0.0 0.0.255.255
crypto ipsec transform-set wentran esp-aes esp-sha-hmac

crypto map wenmap 1 ipsec-isakmp
match address 100
set transform-set wentran
set peer 100.1.1.1
exit

int fa0/0
crypto map wenmap


4)拿一台PC继续ping一下目标公司的PC,测试网络的连通性

**实验2:**在实验1的基础上,要求2个公司能上网,但不影响VPN隧道
步骤:
1)给连接服务器的路由器端口与服务器配置ip

      **配置路由器端口IP命令**

             **en**                                                       **# 进入特权模式**

            **conf t**                                                   **# 进入全局配置模式**

            **int**  **Fa0/x​​**                                             **# 进入需要配置的端口**

            **ip add** **IP 子网掩码**                              **# 配置IP,如:  ip add 150.1.1.254 255.255.255.0**

            **no shut**                                                **# 开启端口**

2)配置NAT让内网可以访问外网

    **配置北京总公司的路由器(端口号与IP要改成自己的)**

       **定义内网端口**

            **en                     # 进入特权模式**

            **conf t**                **# 进入全局配置模式**

            **int** **fa0/1**           **# 进入需要设置的端口**

            **ip nat inside**    **# 将端口定义为内网端口**

            **exit**

    **定义外网端口**

            **conf t**                **# 进入全局配置模式**

            **int** **fa0/0**            **# 进入需要设置的端口**

            **ip nat outside**  **\# 将端口定义为外网端口**

            **exit**                   **# 退到上一级**

    **定义内部地址池**

            **conf t                # 进入全局配置模式**

            **acc 101 deny ip 192.168.0.0 0.0.255.255 172.16.0.0 0.0.255.255    \# 拒绝192.168开头网段访问172.16开头网段(不做IP源地址转换),注意配置这条命令不会影响实验一的VPN隧道,因为这里ACL表是101,实验1的是100,而且这里配置的表没有挂载到接口上,所以也不用担心192.168开头网段访问其他网段会被[ACL技术]( )干掉**

            **acc** **101** **permit ip any any**    **# 将所有的ip地址都加入101号地址池内,全部允许通过(除了92.168开头网段访问172.16开头网段的包)**

            **do show  ip access-list**   **表IP**   **#  查看ACL表, 表IP 是可选的,不写就查看所有表**

            **exit**                          **# 退到上一级**

    **做PAT动态映射(映射到外网端口)**

            **conf  t**

            **ip  nat   inside   source  list  100  int  fa0/0   overload   # 源ip地址如果在地址池1中,就允许使用f0/1接口上的公网ip地址做替换,然后再做端口转换**

测试一下

    **配置上海分公司的路由器(端口号要改成自己的)**

      **定义内部地址池 (其他命令都一样就是这里的IP要调换一下)**

              **acc 101 deny ip 172.16.0.0 0.0.255.255 192.168.0.0 0.0.255.255    # 禁止172.16开头网段访问192.168开头网段(不做IP源地址转换)**

            **acc 101 permit ip any any    # 将所有的ip地址都加入101号地址池内,全部允许通过(除了92.168开头网段访问172.16开头网段的包)**

测试一下

**实3:**在实验1和2的基础上,要求北京总部与广州新成立的分公司也建立VPN隧道
步骤:
1)给连接服务器的路由器端口与服务器配置ip

   **配置路由器端口IP命令**

             **en**                                                       **# 进入特权模式**

            **conf t**                                                   **# 进入全局配置模式**

            **int**  **Fa0/x​​**                                             **# 进入需要配置的端口**

            **ip add** **IP 子网掩码**                              **# 配置IP,如:  ip add 10.1.1.1 255.255.255.0**

            **no shut**                                                **# 开启端口**

2)给路由器的外网接口配置一条默认路由
             **conf t**                          **# 进入全局配置模式** 

            **ip route** **0.0.0.0 0.0.0.0 120.1.1.254**

            **exit**                             **# 退到上一级**

            **do show ip route**        **#  查看路由表**

3)配置VNP隧道

配置自己路由器的命令

en
conf t
crypto isakmp policy 1
encryption aes
hash sha
group 2
authentication pre-share
lifetime 3600
exit
crypto isakmp key zhangsan address 100.1.1.1

access-list 100 permit ip 10.1.0.0 0.0.255.255 192.168.0.0 0.0.255.255
crypto ipsec transform-set wentran esp-aes esp-sha-hmac

crypto map wenmap 1 ipsec-isakmp
match address 102
set transform-set wentran
set peer 100.1.1.1
exit

int fa0/1
crypto map wenmap


配置北京的路由器

**sh run                                                             # 查看_running_\-config文件,对做过路由器的所有配置都在这里**

配置思路分析:

    **(1)阶段一**现在只有指向上海分公司的公网ip:200.1.1.1,我们现在需要让他多一条指向广州分公司的公网ip:120.1.1.1 ,阶段一其他的设置是可以共用的,所以阶段一配置命令如下:

             **en**                                                       **# 进入特权模式**

            **conf t**                                                   **# 进入全局配置模式**

            **crypto isakmp key** **zhangsan** **address** **120.1.1.1**  **\# 配置指向广州公网IP的共享密钥**

           **do  sh run**                                                  **# 查看_running_\-config文件,检查一下刚才的配置**

(2)阶段二之前配置是在ACL表号为100的表里面设置让192.168在访问上海分公司172.16的网段可以走VPN隧道,我们现在需要让他多一条允许192.168在访问广州分公司内网IP:10.1开头的网段也可以走VPN隧道,阶段二其他的设置也是可以共用的,所以阶段二配置命令如下:

            **conf t**                                                   **# 进入全局配置模式** 

            **access-list 102 permit ip 192.168.0.0 0.0.255.255 10.1.0.0 0.0.255.255  # 往北京的路由器的ACL表号为102的表添加一条让192.168.开头的网段ip可以访问10.1开头的网段条目,注意表号100的已经是给北京访问上海的使用了,不能再把条目添加都100表内**

            **do sh run**                                                  **# 查看_running_\-config文件,检查一下刚才的配置**

     **(3)阶段三**就是配置MAP映射表

            **conf t**                                                   **# 进入全局配置模式**

            **crypto map** **wenmap 2**  **ipsec-isakmp** **# 进入MAP表配置模式。创建一个map表并命名为****wenmap** **,数字 2 是标识,我这里的模式名和实验一的MACP是一样并且wenmap 这张表之前已经应用到接口上了现在是通过标识来区分不同的表,之前的标识是1,现在的是2**

            **match address** **102**    **\# 将第二阶段的数据连接的ACL表** **102****映射过来,简单理解就是要使用102表做匹配**  
            **set transform-set** **wentran   #** **只要匹配ACL表的IP,就使用实验一定义的传输模式****wentran 做****加密及认证方式对数据进行加密**  
            **set peer 120.1.1.1**           **#** **配置目标的公网ip(这里是指广州分公司的公网ip)**

    **(4)**现在北京指向广州分公司的VPN隧道已经配置完成了,但是现在还是无法通信的因为在实验2我们给北京总部的路由器配置了NAT的**PAT**,**PAT**会把数据帧的源IP转换成公网ip,我们这里北京访问广州分公司是走VPN隧道的所以要设置豁免,让PAT对他不做转换:

    **向ACL表插入条目**

         **conf t**                                                   **# 进入全局配置模式**

        **ip access-list extended 101**   **# 进入要修改的表101**

        **15 deny ip 192.168.0.0 0.0.255.255** **10.1.0.0  0.0.255.255  # 在ID为15的位置插入条目**

         **exit                                                 # 退到上一级**

         **do show ip access-list   101        \# 查看ACL表,表号可选,不写查找全部**

4)测试,网络连通性
             **先用北京的PC上网与ping 一下上海的PC**

    **然后让广州的PC ping 北京的PC**

**实验4:**在1-3的基础上,要求广州和上海之间不建立VPN隧道,但广州和上海可以互相安全的通信
(1)现在已经有了VPN隧道,不过是广州与北京的,我们要加ACL表内添加一条匹配广州与上海的条目。
    **目的:**因为现在的广州分公司VPN隧道是指向北京的,我们已经加ACL表内添加一条匹配广州与上海的条目,所以用广州的PC访问上海的PC的数据也会被路由到北京总部的那个路由器,然后再配置一下北京总部的那个路由器的ACL表,再由他路由把数据路由到上海分公司(之前已经配置过北京到上海的VPN隧道)

    **在广州这边的路由器添加** 

      **conf t**                                                   **# 进入全局配置模式**

     **acc 102 permit ip 10.1.0.0 0.0.255.255 172.16.0.0 0.0.255.255  \# 添加一条匹配广州到上海的条目(意思就是广州到上海也让他走VPN隧道,这个隧道是广州到北京。**

通俗点理解(举例):广州到上海没有高铁(VPN隧道),但是广州到北京有高铁我可以先坐车到北京再转车到上海,因为北京到上海有高铁(有VPN隧道))

(2)北京总部与上海分公司的VPN隧道的ACL表只有一条匹配北京访问上海的(192.168 - 172.16),现在要加一条广州到上海的条目(10.1 - 172.16)
    **目的:**让广州访问上海分公司的数据到达北京总部这边让北京总部这边的路由器再转发到上海,实现广州与上海的安全通信,而不用再次花钱买VPN隧道。

  **在北京这边的路由器添加**  

      **conf t**                                                   **# 进入全局配置模式**

      **acc 100 permit ip 10.1.0.0 0.0.255.255 172.16.0.0 0.0.255.255  \# 添加一条匹配广州到上海的条目(意思就是广州到上海也让他走VPN隧道,这个隧道是北京到上海。转车到上海)**

    **现在广州访问上海的数据行走的路线图**

(3)现在广州访问上海分公司数据可以到达了,但是上海分公司现在还无法给广州回包,或者说是上海无法访问广州。

    **现在配置上海到广州,思路和配置广州的一样,上海到广州的数据先发给北京总部的路由器再转发到广州**

             **conf t**                                                   **# 进入全局配置模式** 

            **acc 100 permit ip 172.16.0.0 0.0.255.255  10.1.0.0 0.0.255.255   \# 添加一条匹配上海到广州的条目** 

    **注意:**因为在实验2给上海的路由器配置了NAT,转换了源IP为外网端口ip但是这里我们是要上海与广州通信是走VNP隧道,不用转换IP包的源IP地址,所以要配置过滤

向ACL表插入条目

         **conf t**                                                   **# 进入全局配置模式**

        **ip access-list extended 101**   **# 进入要修改的表101**

        **15 deny ip  172.16.0.0  0.0.255.255   10.1.0.0  0.0.255.255  # 在ID为15的位置插入条目,172.16 访问 10.1.不用做NAT地址转换(上海到广州不做地址转换)**

         **exit                                                 # 退到上一级**

         **do show ip access-list   表号       \# 查看ACL表,表号可选,不写查找全部**

(4)让北京总部的路由器转发上海到广州的数据包到广州

            **conf t**                                                   **# 进入全局配置模式** 

            **acc 102  permit ip  172.16.0.0  0.0.255.255   10.1.0.0  0.0.255.255   \# 添加一条匹配上海到广州的条目 ,注意这里要加到广州与北京的VPN隧道的ACL表内我这里是102,北京到上海的是100**

(5)测试广州到上海/上海到广州的网络连通性

9、远程访问VPN

在公司需要搭建PN服务器

  • VPN服务器需要对PN客户端进行身份验证
  • VPN服务器需要给VPN客户端下发权限及P地址
**实现原理:**

        **1)**公司配置一个远程VPN服务器,员工在外面要访问公司内部的资源时就要对VPN服务器进行拨号,VPN服务器收到后就会下发一个私网ip地址如:172.16.1.1

        **2)**然后员工的PC就会使用这个IP访问公司的VPN服务器,不过私网是不能在互联网上存活的,所以员工访问公司的数据帧会被加密,再封装一个IP包头(源ip是员工现在连接的路由器配置的公网ip,目标是公司的公网ip),数据帧到达公司的路由器后就会解封装还原数据帧

        **3)**还原之后路由器会把数据包的源IP(172.16.1.1)拿出来,使用公司的内网的网关(192.1.1.1)替换,然后公司内网被访问的服务器就以为是192.1.1.1(网关)在访问他,回包的时候就会发给网关(目标ip是网关),网关一般是配置在路由器上的,这就意味着回包的数据发到了路由器然后路由器再把数据包的现在目标IP(网关)拿掉,把刚才的172.16.1.1(员工的ip)替换上去再加密数据包,重新封装一个IP包头(源IP:公司的公网IP,目标IP:员工现在连接的路由器配置的公网ip),然后再发送出去。

10、实验:模拟翻墙(注意:仅用来学习原理,翻墙犯法)
步骤:
**1)**使用一台windowsXP、两台windows2003或2007/8虚拟机,一台当做VPN服务器,windowsXP网络设置为VMnet1,VPN服务器一块网卡设置成VMnet1另一块网卡设置成VMnet2,某国google服务器网络设置为VMnet2

    **给VPN服务器添加一块网卡** 

     **第一块网卡连国内,网络设置为VMnet1, 第二块网卡连国外,网络设置为VMnet2。**

某国google服务器网络设置为VMnet2

2)给虚拟机配置IP(国内主机XP配置:100.1.1.2 /24,VPN连接国内的**VMnet1网卡配置:**100.1.1.1 /24,另一块:200.1.1.1 /24,某国google服务器: 200.1.1.2 /24)

3)某国google服务器上IIS-Web部署一个网页,等下用国内的主机访问测试

现在国内的主机无法访问该网页,不过VPN服务器可以访问该网页,而国内的主机又可以访问VPN服务器

4)给VPN服务器这台PC装上VPN服务器的软件并开启

**PPTP 或 L2TP 的VPN协议的端口号都是 TCP:**1723

    **netstat -an**  **#  查看本机开放的端口号** 

     **开启VPN服务器**

5)在VPN服务器的PC创建一个普通账号让其他要翻墙的PC可以用来拨号访问

6)打开VPN服务器配置NAT地址转换,让国内的PC访问国外的网站时的私网地址转换会被成VPN服务器公网ip,然后以VPN服务器的身份访问国外的网站实现翻墙(防火长城)

    **配置给VPN拨号的PC下发的私有地址**

     **配置NAT地址转换**![](https://img-blog.csdnimg.cn/09e8a4b86eca48a897270ced856f7887.png)

     **选择外网接口让数据出这个接口时做网络地址转换**![](https://img-blog.csdnimg.cn/049f6ff3a2e946ceb5c30234bee46da2.png)

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!


![](/image/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9ibG9nX21pZ3JhdGUvNDFhMTA5ZjFkYjk0NzE3Y2YyNGM2MDg4MzNiYzgzOTcucG5n)


![](/image/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9ibG9nX21pZ3JhdGUvOTM1NjNkYmVmODA0MmM3NTQ1NjMwY2I0NzUyODVmN2YucG5n)


![](/image/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9ibG9nX21pZ3JhdGUvZDg5YzgxY2QwN2FhYzdkNzE4N2IzY2NlMDZkNTllYjIucG5n)



 **配置NAT地址转换**![](https://img-blog.csdnimg.cn/09e8a4b86eca48a897270ced856f7887.png)

 **选择外网接口让数据出这个接口时做网络地址转换**![](https://img-blog.csdnimg.cn/049f6ff3a2e946ceb5c30234bee46da2.png)



[外链图片转存中...(img-lrtwgM0A-1715560281649)]
[外链图片转存中...(img-cR7Q3Jra-1715560281649)]

**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

**[需要这份系统化的资料的朋友,可以添加戳这里获取](https://bbs.csdn.net/topics/618658159)**


**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

;