一直以来PacketiX VPN都只是作为一款专业的VPN产品来作为卖点的,其实除了这个功能之外,PacketiX VPN还可以作为一款软路由来使用,这非常类似于微软的【路由和远程访问】功能,不但支持移动用户的VPN连接访问,还能作为局域网的网关,负责内网电脑的上网,速度快,配置简单,安全性高。
PacketiX VPN附加的软路由功能,相对于那些专门做软路由的产品,功能有过之而无不及。用户的访问控制,带宽限制,都可做到细粒度管理。
PacketiX VPN服务器作为软路由,需要有两个连接,一个连接internet网,一个连接内网。安装配置方便简单,内网用户和远程连接用户访问速度都很快。成本低廉,PacketiX VPN对服务器的硬件配置要求不高,普通的个人电脑即可,不需要很多的网络知识,简简单单即可完成配置。
实施步骤:
安装PacktiX VPN的服务器需要有两个连接,一个连接internet网,一个连接内网交换机。
PacketiX VPN Server端安装之后,启动软件,进入到管理界面,能够看到【虚拟HUB管理】和各种按钮。
虚拟HUB是PacketiX VPN的核心概念,他可以和物理网络进行桥接。也可以让移动用户VPN远程连接上来,实现与局域网的通信。
刚安装的PacketiX VPN Server默认有一个【DEFAULT】虚拟HUB,可以创建多个虚拟HUB,每个虚拟HUB都可以建立一个独立的2层以太网络,他们是互相隔离的。作为软路由来用的话,使用默认的虚拟HUB,就可以了。
一、首先要确定内网使用的网段,比如使用192.168.1.0网段,然后手动给内部连接网卡分配一个IP地址和掩码,不要填网关,这个IP地址不是网关,不能和网关有冲突。
外部连接网卡可以是ADSL拨号,或者是固定IP连接internet网。
二、进入到PacketiX VPN管理界面,进行桥接设置,点击【本地网桥设置】,虚拟HUB选择已存在的【DEFAULT】,新适配器选择【内部连接】网卡,点击【添加本地网桥】,这步操作主要是为了实现虚拟HUB与内部网络的连接。
三、进入到【管理虚拟HUB】,为【DEFAULT】虚拟HUB创建用户,用于远程用户的VPN连接认证,如果没有用户需要远程连接,可以不创建用户。输入用户名和密码点击【OK】。
四、在虚拟HUB管理中,点击右侧的【虚拟NAT和虚拟DHCP服务端】,并点击【启用SacureNAT功能】。这是启用PacketiX VPN软路由的关键一步,
再点击【SecureNAT配置】,进行DHCP和NAT的配置,
五、在【SecureNAT配置】配置界面中,虚拟主机的IP设置为192.168.1.1,NAT和DHCP功能选择启用,DHCP 的IP地址池和根据情况设定,比如192.168.1.10~192.168.1.200。
默认网关和DNS都设为192.168.1.1。点击【OK】,
此时PacketiX VPN Server端的配置已经完成,内网用户可以通过DHCP服务得到IP地址,并实现上网功能。
移动用户安装PacketiX VPN Client端后,启动VPN Client,先创建一个虚拟网卡:
然后双击【创建新的VPN连接】,
【主机名】输入VPN Server的外部连接网卡的公网IP地址,
【端口号】选择8888,
【虚拟HUB】会自动出现【DEAULT】,
【用户名密码】输入VPN Serve上创建的用户和密码,点击【OK】
此时移动用户就可以建立到VPN Server的VPN连接,连接后VPN Client的虚拟网卡上能获得VPN Server上DHCP分配的内网IP地址,就可以访问内网的电脑,安全性高,访问速度快。
- spring的作用
1)spring主要包括IOC和AOP,IOC依赖注入(控制反转)很好的解决了代码的硬编码耦合问题,通过配置文件注入对象的方式实例化,扩展性更强。
2)AOP面向切面编程的思想在一个业务流程中通过动态代理动态的将操作织入到流程中,减轻了编码程度,可配置性和扩展性高,提高代码重复可用度。
- spring的事物隔离级别
在Spring中定义了5中不同的事务隔离级别:
1. ISOLATION_DEFAULT(一般情况下使用这种配置既可) ;
这是一个PlatfromTransactionManager默认的隔离级别,使用数据库默认的事务隔离级别。
2. ISOLATION_READ_UNCOMMITTED 4 p" L. I' F; k1 {) a. D( E5 ?: V
这是事务最低的隔离级别,它充许别外一个事务可以看到这个事务未提交的数据。这种隔离级别会产生脏读,不可重复读和幻像读。
大部分数据库缺省的事物隔离级别都不会出现这种状况) 1 N$ G7 X" U# U6 S/ u' z/ I
3. ISOLATION_READ_COMMITTED
保证一个事务修改的数据提交后才能被另外一个事务读取。另外一个事务不能读取该事务未提交的数据。这种事务隔离级别可以避免脏读出现,但是可能会出现不可重复读和幻像读。
: U8 m# n8 g1 k( E: N
什么是脏读?(修改且未提交引起)
例如:
张三的工资为5000,事务A中把他的工资改为8000,但事务A尚未提交。与此同时,事务B正在读取张三的工资,读取到张三的工资为8000。随后,事务A发生异常,而回滚了事务。张三的工资又回滚为5000。最后,事务B读取到的张三工资为8000的数据即为脏数据,事务B做了一次脏读。' T, B j d! H# i) s$ i
(大部分数据库缺省的事物隔离级别都不会出现这种状况) ; N$ ~" J7 a& Y* ?/ G8 I
4. ISOLATION_REPEATABLE_READ
这种事务隔离级别可以防止脏读,不可重复读。但是可能出现幻像读。 3 [* {- F2 s. w+ |
什么是不可重复读?(修改引起)
6 h2 E% J, S7 f9 n+ m0 U4 ]" ?% e. a
例如: / ^7 Y# T6 |& Z' B
在事务A中,读取到张三的工资为5000,操作没有完成,事务还没提交。 5 K: N6 c" [$ p: J4 L/ I" B
与此同时,事务B把张三的工资改为8000,并提交了事务。随后,在事务A中,再次读取张三的工资,此时工资变为8000。在一个事务中前后两次读取的结果并不致,导致了不可重复读。
(大部分数据库缺省的事物隔离级别都不会出现这种状况) . h+ U! y9 {) }1 R8 ~% B, l; t
5. ISOLATION_SERIALIZABLE
这是花费最高代价但是最可靠的事务隔离级别。事务被处理为顺序执行。除了防止脏读,不可重复读外,还避免了幻读。
% c0 @8 E& g" x1 X/ p3 F; H1 q
什么是幻读?(添加新记录引起)
9 d! D% j. |9 w9 N+ ~
例如:
A目前工资为5000的员工有10人,事务A读取所有工资为5000的人数为10人。此时,事务B插入一条工资也为5000的记录。这是,事务A再次读取工资为5000的员工,记录为11人。此时产生了幻读。
大部分数据库缺省的事物隔离级别都会出现这种状况,此种事物隔离级别将带来表级锁)
_! O3 W6 M/ L
说明 :Oracle数据库缺省的事物隔离级别已经保证了避免脏读和不可重复读。但可能会幻读,避免幻读需要加表级锁,Oracle缺省行级锁。在基于Spring的事物配置中一定要慎重使用ISOLATION_SERIALIZABLE的事物隔离级别。这种配置会使用表级锁,对性能影响巨大。一般没有特殊需要的话,配置为使用数据库缺省的事物隔离级别便可。
- 事物的传播特性
1、Required t1无事物则t2开启新事物,t1有事物则t2也用t1事物
2、RequiredNew t1无事物则t2开启新事物,t1有事物t2仍然开启t2事物
3、Supports t1无事物则t2也不开启事物,t1开启事物则t2使用t1事物
4、Mandatory t1无事物t2则报错,t1有事物则t2也用t1事物
5、NotSupport t1无事物则t2也无事物,t1有事物t2也无事物
6、Never t1无事物则t2也无事物,t1有事物则t2也报错
- Bean的作用域
<bean scope=”singleton”> </bean>
Singleton - 当ApplicationContext初始化时,容器会自动初始化所有singleton
每次程序向Spring容器请求是,Spring容器总是返回最开始创建的对象
Prototype – 每次程序向Spring容器请求是,Spring容器会临时去创建prototype bean
Request--- 要在web应用才有效,每个用户请求
Session --- 要在web应该有才有效,每个用户会话
Global session 仅在portlet context才有效
- spring的事务如何配置
spring的声明式事务配置:
1. <!-- 配置sessionFactory -->
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="configLocation">
<value>/WEB-INF/classes/hibernate.cfg.xml</value>
</property>
</bean>
2. 配置事务管理器
<!-- 配置事务管理器 -->
<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref local="sessionFactory" />
</property>
</bean>
3. 配置事务特性
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="add*" propagation="REQUIRED"/>
&nbs
这两天雅安地震的新闻到处都是,也有很多人捐款给灾区难民,但作为一直亏本经营的博主们,恐怕也帮不上什么忙了,但我们可以把自己的网站弄成黑白色调,一起来悼念遇难的同胞们。
让网站变成黑白其实并不难,很多门户网站在第一时间带头把网站都改成了黑白色调,作为一个不太懂前端,不太懂CSS的人,我也明白改这东西肯定很方便,网上搜到的有这样的做法:
在全局的css文件(wordpress中就是对应主题的style.css文件)顶部加入这样一段代码:
html { filter:progid:DXImageTransform.Microsoft.BasicImage(grayscale=1); }
尝试了一下居然没效果,然后想了想可以去看看其他网站是怎么修改这个文件的,找到了“卢松松博客”,他的css文件中是加了这么一段:
html {filter: progid:DXImageTransform.Microsoft.BasicImage(grayscale=1); -webkit-filter: grayscale(100%); }
虽然我不明白这最后多出来的那段代码有什么作用,但我在自己的站上试了下毕竟是生效了,那就先黑白的用一阵子吧,跟着众多站长一起悼念同胞。你们也可以用浏览器的调试工具查看我的css文件,应该就知道该怎么用了。
可能有些人想只设置首页为黑白,那么网上也有很多说法,但我尝试了下实在实现不了,看来我的技术还是太挫了点。
转自:爱撸小杰