当前位置:  互联网>综合
本页文章导读:
    ▪PPTP L2TP IPSEC虚拟专用网络              虚拟专用网络(Virtual Private Network ,简称VPN)指的是在公用网络上建立专用网络的技术。其之所以称为虚拟网,主要是因为整个VPN网络的任意两个节点之间的连.........
    ▪.Net使用SmtpClient发送邮件,报错:不允许使用邮箱名称。 服务器响应为: xxx      从晚上找了一个封装.Net的Smtp邮件发送的类 class MailSender { private MailMessage mailMessage; private SmtpClient smtpClient; private string password;//发件人密码 /// <summary> /// 处审核后类的实例 /// <.........
    ▪解决linux进入时提示“用户的$HOME/.dmrc 已被忽略”      输入如下命令,hunker 为你的用户名,全部都要改成你的用户名,执行过程中会有一些错误提示,不用管。 chmod 755 -R ~/ sudo chown -R hunker:hunker /home/hunker sudo chmod 644 /home/hunker/.dmrc sudo chown hunker:hu.........

[1]PPTP L2TP IPSEC虚拟专用网络
    来源: 互联网  发布时间: 2013-10-21

        虚拟专用网络(Virtual Private Network ,简称VPN)指的是在公用网络上建立专用网络的技术。其之所以称为虚拟网,主要是因为整个VPN网络的任意两个节点之间的连接并没有传统专网所需的端到端的物理链路,而是架构在公用网络服务商所提供的网络平台,如Internet、ATM(异步传输模式〉、Frame Relay (帧中继)等之上的逻辑网络,用户数据在逻辑链路中传输。它涵盖了跨共享网络或公共网络的封装、加密和身份验证链接的专用网络的扩展。

      

意义
VPN属于远程访问技术,简单地说就是利用公网链路架设私有网络。例如公司员工出差到外地,他想访问企业内网的服务器资源,这种访问就属于远程访问。怎么才能让外地员工访问到内网资源呢?VPN的解决方法是在内网中架设一台VPN服务器,VPN服务器有两块网卡,一块连接内网,一块连接公网。外地员工在当地连上互联网后,通过互联网找到VPN服务器,然后利用VPN服务器作为跳板进入企业内网。为了保证数据安全,VPN服务器和客户机之间的通讯数据都进行了加密处理。有了数据加密,就可以认为数据是在一条专用的数据链路上进行安全传输,就如同专门架设了一个专用网络一样。但实际上VPN使用的是互联网上的公用链路,因此只能称为虚拟专用网。即:VPN实质上就是利用加密技术在公网上封装出一个数据通讯隧道。有了VPN技术,用户无论是在外地出差还是在家中办公,只要能上互联网就能利用VPN非常方便地访问内网资源,这就是为什么VPN在企业中应用得如此广泛。

  原理

在传统的企业网络配置中,要进行异地局域网之间的互连,传统的方法是租用dsn(数字数据网)专线或帧中继。这样的通讯方案必然导致高昂的网络通讯/维护费用。对于移动用户(移动办公人员)与远端个人用户而言,一般通过拨号线路(Internet)进入企业的局域网,而这样必然带来安全上的隐患。
虚拟专用网的优点
⑴使用VPN可降低成本——通过公用网来建立VPN,就可以节省大量的通信费用,而不必投入大量的人力和物力去安装和维护WAN(广域网)设备和远程访问设备。
⑵传输数据安全可靠——虚拟专用网产品均采用加密及身份验证等安全技术,保证连接用户的可靠性及传输数据的安全和保密性。
⑶连接方便灵活——用户如果想与合作伙伴联网,如果没有虚拟专用网,双方的信息技术部门就必须协商如何在双方之间建立租用线路或帧中继线路,有了虚拟专用网之后,只需双方配置安全连接信息即可。
⑷完全控制——虚拟专用网使用户可以利用ISP的设施和服务,同时又完全掌握着自己网络的控制权。用户只利用ISP提供的网络资源,对于其它的安全设置、网络管理变化可由自己管理。在企业内部也可以自己建立虚拟专用网。[1]
特点
⑴安全保障
VPN通过建立一个隧道,利用加密技术对传输数据进行加密,以保证数据的私有性和安全性。
⑵服务质量保证
VPN可以为不同要求用户提供不同等级的服务质量保证。
⑶可扩充、灵活性
VPN支持通过Internet和Extranet的任何类型的数据流。
⑷可管理性
VPN可以从用户和运营商角度方便进行管理。
功能
在网络中,服务质量(QoS)是指所能提供的带宽级别。将QoS融入一个VPN,使得管理员可以在网络中完全控制数据流。信息包分类和带宽管理是两种可以实现控制的方法:
信息包分类
信息包分类按重要性将数据分组。数据越重要,它的级别越高。当然,它的操作也会优先于同网络中相对次要的数据。
带宽管理
通过带宽管理,一个VPN管理员可以监控网络中所有输入输出的数据流,可以允许不同的数据包类获得不同的带宽。
其他的带宽控制形式还有:
通信量管理
通信量管理方法的形成是一个服务提供商在Internet通信拥塞中发现的。大量的输入输出数据流排队通过,这使得带宽没有得到合理使用。
公平带宽
公平带宽允许网络中所有用户机会均等地利用带宽访问Internet。通过公平带宽,当应用程序需要用更大的数据流,例如MP3时,它将减少所用带宽以便给其他人访问的机会。
传输保证
传输保证为网络中特殊的服务预留出一部分带宽,例如视频会议,IP电话和现金交易。它判断哪个服务有更高的优先权并分配相应带宽。
网络管理员必须管理虚拟个人网络以及使一个组织正常运作所需的资源。因为远程办公还有待发展,VPN管理员在维护带宽上还有许多问题。然而,新技术对QoS的补充将会帮助网络管理员解决这个问题。
分类
根据不同的划分标准,VPN可以按几个标准进行分类划分
⒈ 按VPN的协议分类
VPN的隧道协议主要有三种,PPTP,L2TP和IPSec,其中PPTP和L2TP协议工作在OSI模型的第二层,又称为二层隧道协议;IPSec是第三层隧道协议,也是最常见的协议。L2TP和IPSec配合使用是目前性能最好,应用最广泛的一种。
⒉ 按VPN的应用分类:
1)Access VPN(远程接入VPN):客户端到网关,使用公网作为骨干网在设备之间传输VPN的数据流量;
2)Intranet VPN(内联网VPN):网关到网关,通过公司的网络架构连接来自同公司的资源;
3)Extranet VPN(外联网VPN):与合作伙伴企业网构成Extranet,将一个公司与另一个公司的资源进行连接;
⒊ 按所用的设备类型进行分类:
网络设备提供商针对不同客户的需求,开发出不同的VPN网络设备,主要为交换机,路由器,和防火墙
1)路由器式VPN:路由器式VPN部署较容易,只要在路由器上添加VPN服务即可;
2)交换机式VPN:主要应用于连接用户较少的VPN网络;
3)防火墙式VPN:防火墙式VPN是最常见的一种VPN的实现方式,许
    
[2].Net使用SmtpClient发送邮件,报错:不允许使用邮箱名称。 服务器响应为: xxx
    来源: 互联网  发布时间: 2013-10-21

从晚上找了一个封装.Net的Smtp邮件发送的类

class MailSender
{
	private MailMessage mailMessage;
	private SmtpClient smtpClient;
	private string password;//发件人密码 
	
	/// <summary>  
	/// 处审核后类的实例  
	/// </summary>  
	/// <param name="To">收件人地址</param>  
	/// <param name="From">发件人地址</param>  
	/// <param name="Body">邮件正文</param>  
	/// <param name="Title">邮件的主题</param>  
	/// <param name="Password">发件人密码</param>  
	public MailSender(string To, string From, string Body, string Title, string Password)
	{
		mailMessage = new MailMessage();
		mailMessage.To.Add(To);
		mailMessage.From = new System.Net.Mail.MailAddress(From);
		mailMessage.Subject = Title;
		mailMessage.Body = Body;
		mailMessage.IsBodyHtml = true;
		mailMessage.BodyEncoding = System.Text.Encoding.UTF8;
		mailMessage.Priority = System.Net.Mail.MailPriority.Normal;
		this.password = Password;
	}
	/// <summary>  
	/// 添加附件  
	/// </summary>  
	public void Attachments(string Path)  
	{  
		string[] path = Path.Split(',');  
		Attachment data;  
		ContentDisposition disposition;  
		for (int i = 0; i < path.Length; i++)  
		{  
			data = new Attachment(path[i], MediaTypeNames.Application.Octet);//实例化附件  
			disposition = data.ContentDisposition;  
			disposition.CreationDate = System.IO.File.GetCreationTime(path[i]);//获取附件的创建日期  
			disposition.ModificationDate = System.IO.File.GetLastWriteTime(path[i]);//获取附件的修改日期  
			disposition.ReadDate = System.IO.File.GetLastAccessTime(path[i]);//获取附件的读取日期  
			mailMessage.Attachments.Add(data);//添加到附件中  
		}  
	}
	/// <summary>  
	/// 异步发送邮件  
	/// </summary>  
	/// <param name="CompletedMethod"></param>  
	public void SendAsync(SendCompletedEventHandler CompletedMethod)
	{
		if (mailMessage != null)
		{
			smtpClient = new SmtpClient();
			smtpClient.Credentials = new System.Net.NetworkCredential(mailMessage.From.Address, password);//设置发件人身份的票据  
			smtpClient.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;
			smtpClient.Host = "smtp." + mailMessage.From.Host;
			smtpClient.SendCompleted += new SendCompletedEventHandler(CompletedMethod);//注册异步发送邮件完成时的事件  
			smtpClient.SendAsync(mailMessage, mailMessage.Body);
		}
	}
	/// <summary>  
	/// 发送邮件  
	/// </summary>  
	public void Send()
	{
		if (mailMessage != null)
		{
			smtpClient = new SmtpClient();
			smtpClient.Credentials = new System.Net.NetworkCredential(mailMessage.From.Address, password);//设置发件人身份的票据  
			smtpClient.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;
			smtpClient.Host = "smtp." + mailMessage.From.Host;
			smtpClient.Send(mailMessage);
		}
	}  
}

使用某些邮箱的时候会报错(如sohu):不允许使用邮箱名称,服务器响应为: xxx。需要设置单独的用户名,故修改了下,并做了一些优化。如下:


    class MailSender
    {
        private readonly MailMessage mail;
        private readonly string password;//发件人密码 
        private readonly string user;

        /// <summary>  
        /// 处审核后类的实例  
        /// </summary>  
        /// <param name="to">收件人地址</param>  
        /// <param name="from">发件人地址</param>  
        /// <param name="body">邮件正文</param>  
        /// <param name="subject">邮件的主题</param>  
        /// <param name="sendAccount">发件人账号</param>
        /// <param name="sendPassword">发件人密码</param>  
        public MailSender(string to, string from, string body, string subject, string sendAccount, string sendPassword)
        {
            mail = new MailMessage();
            mail.To.Add(to);
            mail.From = new MailAddress(from);
            mail.Subject = subject;
            mail.Body = body;
            mail.IsBodyHtml = true;
            mail.BodyEncoding = System.Text.Encoding.UTF8;
            mail.Priority = MailPriority.Normal;
            this.password = sendPassword;
            this.user = sendAccount;
        }
        /// <summary>  
        /// 添加附件  
        /// </summary>  
        public void Attachments(string path)  
        {  
            string[] pathes = path.Split(',');  
            for (int i = 0; i < pathes.Length; i++)  
            {  
                var data = new Attachment(pathes[i], MediaTypeNames.Application.Octet);//实例化附件  
                var disposition = data.ContentDisposition;  
                disposition.CreationDate = System.IO.File.GetCreationTime(pathes[i]);//获取附件的创建日期  
                disposition.ModificationDate = System.IO.File.GetLastWriteTime(pathes[i]);//获取附件的修改日期  
                disposition.ReadDate = System.IO.File.GetLastAccessTime(pathes[i]);//获取附件的读取日期  
                mail.Attachments.Add(data);//添加到附件中  
            }  
        }
        /// <summary>  
        /// 异步发送邮件  
        /// </summary>  
        /// <param name="CompletedMethod"></param>  
        public void SendAsync(SendCompletedEventHandler CompletedMethod)
        {
            if (mail != null)
            {
                var smtpClient = new SmtpClient();
                smtpClient.Credentials = new System.Net.NetworkCredential(user, password);//设置发件人身份的票据  
                smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;
                smtpClient.Host = "smtp." + mail.From.Host;
                smtpClient.SendCompleted += CompletedMethod;//注册异步发送邮件完成时的事件  
                smtpClient.SendAsync(mail, mail.Body);
            }
        }
        /// <summary>  
        /// 发送邮件  
        /// </summary>  
        public void Send()
        {
            if (mail != null)
            {
                var smtpClient = new SmtpClient();
                smtpClient.Credentials = new System.Net.NetworkCredential(user, password);//设置发件人身份的票据  
                smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;
                smtpClient.Host = "smtp." + mail.From.Host;
                smtpClient.Send(mail);
            }
        }  
    }


作者:westsource 发表于2013-4-15 13:38:33 原文链接
阅读:58 评论:0 查看评论

    
[3]解决linux进入时提示“用户的$HOME/.dmrc 已被忽略”
    来源: 互联网  发布时间: 2013-10-21
输入如下命令,hunker 为你的用户名,全部都要改成你的用户名,执行过程中会有一些错误提示,不用管。
chmod 755 -R ~/
sudo chown -R hunker:hunker /home/hunker
sudo chmod 644 /home/hunker/.dmrc
sudo chown hunker:hunker /home/hunker/.dmrc
作者:lichongforever 发表于2013-4-15 15:35:02 原文链接
阅读:58 评论:0 查看评论

    
最新技术文章:
▪用户及权限基础 2---- Linux权限    ▪用户及权限基础 3---- Linux扩展权限    ▪git 简明教程(1) --创建及提交
▪背包 代码    ▪json对象的封装与解析    ▪01背包,完全背包,多重背包 ,模板代码
▪apache安装详解    ▪HDU 4668 Finding string (解析字符串 + KMP)    ▪《TCP-IP详解 卷1:协议》学习笔记(二)
▪《TCP-IP详解 卷1:协议》学习笔记(持续更新...    ▪windows下使用swig    ▪gensim试用
▪Linux Shell脚本编程--nc命令使用详解    ▪solr对跨服务器表联合查询的配置    ▪递归和非递归实现链表反转
▪Linux磁盘及文件系统管理 1---- 磁盘基本概念    ▪Cholesky Decomposition    ▪HTTP协议学习
▪用C语言写CGI入门教程    ▪用hdfs存储海量的视频数据的设计思路    ▪java多线程下载的实现示例
▪【原创】eAccelerator 一个锁bug问题跟踪    ▪hadoop学习之ZooKeeper    ▪使用cuzysdk web API 实现购物导航类网站
▪二维数组中的最长递减子序列    ▪内嵌W5100的网络模块WIZ812MJ--数据手册    ▪xss 跨站脚本攻击
▪RobotFramework+Selenium2环境搭建与入门实例    ▪什么是API    ▪用PersonalRank实现基于图的推荐算法
▪Logtype    ▪关于端口号你知道多少!    ▪Linux基本操作 1-----命令行BASH的基本操作
▪CI8.7--硬币组合问题    ▪Ruby on Rails 学习(五)    ▪如何使用W5300实现ADSL连接(二)
▪不允许启动新事务,因为有其他线程正在该会...    ▪getting start with storm 翻译 第六章 part-3    ▪递归求排列和组合(无重复和有重复)
▪工具类之二:RegexpUtils    ▪Coding Interview 8.2    ▪Coding Interview 8.5
▪素因子分解 Prime factorization    ▪C# DllImport的用法    ▪图的相关算法
▪Softmax算法:逻辑回归的扩展    ▪最小生成树---Kruskal算法---挑战程序设计竞赛...    ▪J2EE struts2 登录验证
▪任意两点间的最短路径---floyd_warshall算法    ▪Sqoop实现关系型数据库到hive的数据传输    ▪FFMPEG采集摄像头数据并切片为iPhone的HTTP Stream...
▪Ubuntu 13.04 – Install Jetty 9    ▪TCP/IP笔记之多播与广播    ▪keytool+tomcat配置HTTPS双向证书认证
▪安装phantomjs    ▪Page Redirect Speed Test    ▪windows media player 中播放pls的方法
▪sre_constants.error: unbalanced parenthesis    ▪http headers    ▪Google MapReduce中文版
▪The TCP three-way handshake (connect)/four wave (closed)    ▪网站反爬虫    ▪Log4j实现对Java日志的配置全攻略
▪Bit Map解析    ▪Notepad 快捷键 大全    ▪Eclipse 快捷键技巧 + 重构
▪win7 打开防火墙端口    ▪Linux Shell脚本入门--awk命令详解    ▪Linux Shell脚本入门--Uniq命令
▪Linux(Android NDK)如何避免僵死进程    ▪http Content-Type一览表    ▪Redis实战之征服 Redis + Jedis + Spring (二)
▪Tomcat7.0.40 基于DataSourceRealm的和JDBCRealm的资源...    ▪利用SQOOP将ORACLE到HDFS    ▪django输出 hello world
▪python re    ▪unity3D与网页的交互    ▪内存共享基本演示
▪python join    ▪不再为无限级树结构烦恼,且看此篇    ▪python实现变参
▪打开文件数限制功能不断地制造问题    ▪Arduino Due, Maple and Teensy3.0 的 W5200性能测试    ▪Selenium实例----12306网站测试
▪基于协同过滤的推荐引擎    ▪C4.5决策树    ▪C#HTTP代理的实现之注册表实现
▪nosql和关系型数据库比较?    ▪如何快速比较这两个字符串是否相等?    ▪hdoj 1863 畅通工程 最小生成树---prime算法
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3