标签归档:windows

开启vpn后,NAT/基本防火墙设置

开启VPN后,基本的防火墙不能设置了,只好在NAT/基本防火墙里面设置,但跟基本防火墙只设置一个端口不同,这里还要指向一个专用的地址,让我搞了好久才知道,原来这个专用地址就是指局域网内部的地址,由于是VPN,所以可以拨入公司的内网,而访问的端口也要指定到内网的某台服务器上,如果是指定到本台服务器,则直接写127.0.0.1就可以了,跟基本的防火墙配置是一样的,这里的作用代替了基本的防火墙,也就是为什么不再让开Windows Firewall这个服务的原因了。

重要:如果想让VPN正常访问,请勾选“IP 安全性(IKE)”及“VPN网关(L2TP/IPSec –  运行于此服务器上)”!

 

网络图标不正常显示的解决方案

  最近两天又是使用软件wifi,又是使用360wifi,加上安装的虚拟机虚拟出来的网卡,导致了我的网络图标显示不正常,明明已经正常连接的时候却显示未连接的状态;按照以前的方法就是重启一下电脑就没事了,但今天试了这种方法,没有任何效果,于是想看看网上有没有相应的解决方案,还真有:

  

  开始->输入“设备管理器”->找到网络适配器,把里面不需要的东西都卸载掉,然后再重新扫描,会自动识别;不过这样操作以后,原来无线网络保存的密码可能就需要重新输入了,不记得无线密码的慎重使用

CentOS下Varnish安装

只需要以下两步:

    1. rpm –nosignature -i http://repo.varnish-cache.org/redhat/varnish-3.0/el6/noarch/varnish-release/varnish-release-3.0-1.el6.noarch.rpm
    2. yum install varnish

此时,varnish已经安装完毕,可以使用service varnish start|stop|restart进行启动、停止、重启

varnish主要配置文件:

    1. /etc/sysconfig/varnish(限CentOS和RedHat),可以修改默认端口号,以及要加载的配置文件
    2. /etc/varnish/default.vcl,可以配置要代表的host 及 port,可以重写varnish的相关函数,如通过header传递client_ip,设置要过滤的地址,如wordpress则要将wp-admin, wp-login进行过滤,不然会出现不能正常发文章的情况
    3. 修改/etc/sysconfig/varnish要使用service varnish restart,修改/etc/varnish/default.vcl可以使用service varnish restart|reload

常见重写函数:

    1. 重写vcl_recv,将client.ip拼接到req.http.X-Forwarded-For,应用程序可以从header中读取X-Forwarded-For来获取真实IP地址
    2. 重写vcl_recv,根据host来判断要过滤的url,return(pass);

代码如下:

default {.host = "127.0.0.1";.port = "8080";
    }
    sub vcl_recv {
        if (req.restarts == 0) {
            if (req.http.x - forwarded -
            for) {
                set req.http.X - Forwarded - For = req.http.X - Forwarded - For + ", " + client.ip;
            } else {
                set req.http.X - Forwarded - For = client.ip;
            }
        }
        if (! (req.url~"wp-(login|admin)")) {
            unset req.http.cookie;
        } else {
            return (pass);
        }
        return (lookup);
    }
    sub vcl_fetch {
        if (! (req.url~"wp-(login|admin)")) {
            unset beresp.http.set - cookie;
        }
    }

Windows 删除时权限不足的解决方法

在删除某些文件时,会提示需要管理员权限来操作,可能你会觉得,自己使用的本来就是管理员账户,但还是没有权限。网上有人介绍说把文件夹的安全性降低,赋权给User用户,但有时候这种方法并不让你执行,可以尝试以下方法:

  1. 将下面的文字复制到,并保存成grant.reg
  2. 双击执行导入
  3. 右击要删除的文件夹,点击管理员获得所有权
  4. 再删除该文件夹
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT*shellrunas]
@=”管理员取得所有权”
“NoWorkingDirectory”=””
[HKEY_CLASSES_ROOT*shellrunascommand]
@=”cmd.exe /c takeown /f ”%1” && icacls ”%1” /grant administrators:F”
“IsolatedCommand”=”cmd.exe /c takeown /f ”%1” && icacls ”%1” /grant administrators:F”
[HKEY_CLASSES_ROOTexefileshellrunas2]
@=”管理员取得所有权”
“NoWorkingDirectory”=””
[HKEY_CLASSES_ROOTexefileshellrunas2command]
@=”cmd.exe /c takeown /f ”%1” && icacls ”%1” /grant administrators:F”
“IsolatedCommand”=”cmd.exe /c takeown /f ”%1” && icacls ”%1” /grant administrators:F”
[HKEY_CLASSES_ROOTDirectoryshellrunas]
@=”管理员取得所有权”
“NoWorkingDirectory”=””
[HKEY_CLASSES_ROOTDirectoryshellrunascommand]
@=”cmd.exe /c takeown /f ”%1” /r /d y && icacls ”%1” /grant administrators:F /t”
“IsolatedCommand”=”cmd.exe /c takeown /f ”%1” /r /d y && icacls ”%1” /grant administrators:F /t”

grant.reg下载

Windows共享登录

局域网访问时,会有默认Guest登录,但有时候我们需要更换登录名,有时候又不会弹出登录框,让我们不知道在使用哪个账号登录,而登录的账号又死活没有权限。用以下步骤解决问题:

  1. 开始运行,输入“control userpasswords2” 确定
  2. 高级选项,管理密码
  3. 清除不需要的使用名
  4. 点击添加,如你想用test登录192.168.1.1,直接输入就行了,如果服务器使用了域登录,则你需要这样写用户名:domain\test,密码同样
  5. 再使用\\192.168.1.1就可以使用正确的用户访问相应的文件夹了

Windows 7 和Windows Server 2008远程桌面全屏问题

已经使用Windows 7很长时间了,一直知道Windows 7远程桌面的时候切换回本地窗口,再点最大化按钮是没办法使远程桌面全屏的,也知道这样问题的解决方法是使用组合键ctrl + alt + break,而也一直在我原来的笔记本上使用。但现在新笔记本问题就来了,我在键盘上找不到 Pause/Break的按键,苦恼的问题一直困扰着我。尝试了使用软键盘,一样没有效果

其实如果上面我真使用了软键盘生效的话,也许我就不会再找下去,幸好软键盘不生效,才让我知道了,这其实是Windows 7和Windows Server 2008下的一个BUG,并且已经有补丁做了修复,由于我是使用国内的软件来更新的微软补丁,所以很可能这个补丁被跳过了,只要下载以下补丁(Windows 7 64位和Windows Server 2008 64位)安装后重启就可以了

官方地址:官方说明 补丁下载

Windows 8 使用心得

前段时间觉得自己换了新电脑,非要尝一下新,试了一下Windows 8系统,现在已经切换成Windows 7,以下是近段时间的使用心得:

开始的时候,安装也成了一个问题,但这个可能并不是Windows 8的问题。安装完成以后,直接进入Metro界面,给人的第一感觉就是:真漂亮!这是由于新嘛,新就有新鲜感。

接下来就开始了我痛苦的旅程:首先安装自己常用的软件,当然五笔输入法是不可少的一部分,这时候就发现,原来QQ五笔输入法不支持Metro界面,所以你还要保留微软默认的输入法,而微软默认的输入法只有一款微软拼音,你连换的余地都没有。接着觉得使用输入法老觉得不爽,但一时又不能说出哪里不爽来。后来慢慢发现,原来如果我设置成五笔输入法,每个界面默认就是五笔的输入法,如果你一边写文档,一边想打个地址到浏览器,你会发现你要来来回回切几次输入法才能够完成这个任务,而最终你还可能要借助鼠标来完成这项任务,因为有时候你不知道现在输入法的状态!即使你看到的是五笔输入法,但也可能是五笔的英文模式。最让人受不了的是,如果你在这个界面正在使用拼音,切换一下界面再回来,输入法又会跳成默认的五笔输入法,这绝对是一个BUG,但我也看到QQ五笔并没有明确说自己支持Windows 8操作系统,所以以为这只是一个没有更新的问题,于是在网上找一些主流能够支持Metro的输入法,结果还真给找到了,说是个万能五笔的Metro版,但使用下来词库量和中英文切换各个方法都没有办法满足自己的要求;最后决定,下载个拼音输入法来试试,QQ拼音明确表示自己支持Windows 8操作系统,但一是自己拼音真的用着不爽,二是打字的速度也真是有问题,三是中英文切换还存在着非常不爽的地方,最终达到了实在没有办法,实在不能忍受;
除了一个最大的问题,输入法使我退出Windows 8,还有一些其他原因;Metro界面基本没有使用过,如果不是平板与笔记本合一的电脑,很少会使用到Metro界面,也就是说,Windows 8基本上是为像Surface这样的电脑来制造的,但据说,即使在Surface下,使用Metro界面的时间也不是很长,因为Metro上的应用实在太少了,且质量也不怎么样,没办法完成真正的多任务

Windows 8目前不知道是不是还处理测试版本,各种软件并没有全面的支持Windows8 ,所以就造成很多软件在Windows 7下可以正常使用,但到了Windows 8下面就会出现各种奇怪的问题;

Windows 7下新增了一个最大的功能,是应用程序的搜索,你只需要按下开始菜单,输入自己想要打开的应用 ,就能开启应用了;但Windows 8下面把这个功能搞的复杂化了,或者说如果你想找一个快捷键组合还是可以的,但没有Windows 7下那么明明白白了

Windows 8下关机都会成一个问题,如果你还想从开始菜单里面找到关机的地方,那么你就错了,当然,使用快捷键还是可以关掉机器的

其实我不知道自己几次想对Windows 8 开骂了,但最近一直上不了twitter,找不到地方可以唠叨只好作罢;但今天我已经切换回Windows 7的情况下,还是有必要写一篇博客来描述一下的

win7程序开发时连ftp时出错

一直以为是自己的机器不好,然后,就没有再解决的心情了。

今天帮另一朋友装了机器,新系统,新开发环境,新ftp,同样的代码,连接起来没什么问题,感觉很爽。但为什么我的一直有问题呢,然后想想自己装系统又遥遥无期,于是就想把这个问题解决一下,一定有症结所在。果然,今天一试,连接本地的ftp也会报同样的错误,这就让我相信不是网络的问题,应该是本机上的某个软件的问题,但第一次解决的时候已经将防火墙都禁用过了,好像也没什么效果。但今天还是再试一次,禁用所有防火墙,结果竟然可以了。于是苦苦找防火墙哪条规则跟我的ftp访问冲突了,结果没人能回答

java.net.SocketException: Software caused connection abort: recv failed

果然最后解决我问题的还是stackoverflow,竟然是win7防火墙的一个BUG http://stackoverflow.com/questions/10166337/ftp-error-while-downloading-uploading-with-ftp4j-library-in-java-application

执行下列两项操作的任一一项就可以了:

  • 以管理员身份在cmd下运行如下命令:netsh advfirewall set global StatefulFtp disable
  • 以如下参数运行JVM : -Djava.net.preferIPv4Stack=true

Windows Server 2003下nginx的安装与配置,反向代理tomcat应用

IIS6.0如果仅作为中间件的话是一个不错的选择,但想要完成反向代理等复杂的功能则还是需要一个更简便的应用服务器nginx

  1. 下载nginx
  2. 双击nginx.exe就可以启动了
  3. 修改conf/nginx.conf后,直接使用nginx.exe -s reload就可以重新加载了
  4. 要想关闭nginx 使用 nginx.exe -s stop或者nginx.exe -s quit
  5. 想要关闭nginx的ip访问,可以新建一个default server,将流量导向你自己的网站或返回错误代码(404,500),配置如下

a. 导向自己的网站

server {
    listen 80 default;
    rewrite ^(.*) http://blog.tohours.com permanent;
}

b. 返回500错误

server {
    listen 80 default;
    return 500;
}
  1. tomcat下载windows zip版的时候,要选择32-bit Windows zip的版本才有service.bat
  2. service.bat install Tomcat就可以把tomcat 安装成服务
  3. 如何把nginx安装成服务呢?下载winsw-1.8-bin.exe
  4. 更改名字为myapp.exe,放到nginx目录,新建myapp.xml文件,内容如下(修改为你的路径)
<service>
    <id>nginx</id>
    <name>nginx</name>
    <description>nginx</description>
    <executable>c:nginxnginx.exe</executable>
    <logpath>c:nginx</logpath>
    <logmode>roll</logmode>
    <depend></depend>
    <startargument>-p c:nginx</startargument>
    <stopargument>-p c:nginx -s stop</stopargument>
</service>
  1. 运行myapp.exe install,将会把nginx安装成nginx的服务
  2. 配置nginx到tomcat的代理,很遗憾,没找到 xxx.tohours.com到localhost:8080/xxx的写法
server {
    listen 80;
    server_name xxx.tohours.com;
    location / {
        proxy_pass http://localhost:8080/;
        proxy_redirect     off;
        proxy_set_header   Host             $host;
        proxy_set_header   X-Real-IP        $remote_addr;
        proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
        proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
        proxy_max_temp_file_size 0;
        proxy_connect_timeout      90;
        proxy_send_timeout         90;
        proxy_read_timeout         90;
        proxy_buffer_size          4k;
        proxy_buffers              4 32k;
        proxy_busy_buffers_size    64k;
        proxy_temp_file_write_size 64k;
    }
}

另外介绍一款工具,可以将Windows下的可执行文件变成服务:Windows Server 2003 Resource Kit Tools,具体使用方法参见这里

主要命令两个
1. instsrv Nginx c:\nginx\nginx.exe;
2. instsrv Nginx remove(当然nginx不适合这个建服务,因为nginx会提供两个进程,启动时会报错,结束时无法正确结束)

VBA处理数据

excel有很强大的数据统计功能,就连我数据库初始化数据都先转成excel形式,然后再ctrl + c, ctrl + v 贴进去,使用起来真是很方便。关于excel的书也非常的多,其中的大砖头也不少

但如果对excel不太熟悉的话,也会面对一些问题时束手无策。今天就遇到这样的一种情况,要合并数据,但合并的条件是以第一列的ID为准,也就是说第二列的数据会比较少。数据量比较大,10W以上,不可能纯手工。开始我想到导致数据库,再用程序处理,但后来一想这样做还要我去帮他处理剩下的数据,也不方便,于是就想用vba试试。其实VB是2004年学的,早就还给老师了

以下是写的代码,比较挫,边查边写

Sub export()
    Sheets("Sheet1").Select
    Dim cell_an, cell_bn, cell_a, cell_b
    cell_an = 1
    cell_bn = 1
    While Worksheets(1).Cells(cell_an, 1).Value <> ""
        cell_a = Worksheets(1).Cells(cell_an, 1).Value
        cell_b = Worksheets(1).Cells(cell_bn, 2).Value
       
        Worksheets(2).Cells(cell_an, 1).Value = cell_a
        If cell_a < cell_b Or cell_a > cell_b Then
            Worksheets(2).Cells(cell_an, 2).Value = 0
            Worksheets(2).Cells(cell_an, 3).Value = 0
            Worksheets(2).Cells(cell_an, 4).FormulaR1C1 = "=ABS(RC[-2]-RC[-1])"
            cell_an = cell_an + 1
        ElseIf cell_a = cell_b Then
            Worksheets(2).Cells(cell_an, 2).Value = Worksheets(1).Cells(cell_bn, 3).Value
            Worksheets(2).Cells(cell_an, 3).Value = Worksheets(1).Cells(cell_bn, 5).Value
            Worksheets(2).Cells(cell_an, 4).FormulaR1C1 = "=ABS(RC[-2]-RC[-1])"
            cell_an = cell_an + 1
            cell_bn = cell_bn + 1
        End If
       
    Wend
End Sub