my blog my blog

Category: Windows
Nginx配置noVNC的web页面教程

先说下noVNC的一键启动

./utils/launch.sh --listen localhost:6002--vnc localhost:6001

listen是监听本地端口,如果开放就不要用localhost而用0.0.0.0就好了 。vnc后面是vnc server的端口。

这个noVNC的启动项目没法直接用Nginx反代,因为涉及到websocket。官方的教程是这样做的

在nginx.conf的http字段中添加
upstream vnc_proxy {
    server 127.0.0.1:6080;
}
在nginx.conf的server字段中添加
location /websockify {
          proxy_http_version 1.1;
          proxy_pass http://vnc_proxy/;
          proxy_set_header Upgrade $http_upgrade;
          proxy_set_header Connection "upgrade";

          # VNC connection timeout
          proxy_read_timeout 61s;

          # Disable cache
          proxy_buffering off;
    }
location /vnc {
            index vnc.html;
            alias /home/nenew/noVNC/;
            try_files $uri $uri/ /vnc.html;
    }

其实很好理解,就是通过建立nginx和upstream的连接,然后把vnc的传输通过websocket完成。

这里nginx配置就算完成了,我们还需要一个websocket

./utils/websockify/run source_port target_addr:target_port

其中的源端口和目标地址:端口就正常填写即可,这里需要说的是目标端口和一键启动的端口没有关系,就是vnc的服务端口,websockify和launch俩程序没啥关系。

然后直接通过网站http://www.nenew.net/vnc访问即可。

自建sit 6in4 Tunnel Broker IPv6隧道

从大概8年前就知道HE(Hurricane Electric)的Free IPv6 Tunnel Broker,但是印象中尝试一直是失败的,当然这次的尝试也是失败的,原因估计是电信运营商封了6in4这种数据包封装,不过还是把过程记录下吧。

先说说sit tunnel,其实和GRE tunnel啊IPIP tunnel是相似的,sit tunnel也是本地和远程对等的一种tunnel,也就是说服务器端和客户端几乎是相反的配置。这里的配置需要iproute2的支持。

客户端:

ip tunnel add user-ipv6 mode sit remote 服务器IPv4地址 local 本地IP(如果是内网则为内网地址) ttl 255
ip link set user-ipv6 up
ip addr add 服务器IPv6地址::2/80 dev user-ipv6
ip route add ::/0 dev user-ipv6

服务器端:

ip tunnel add server-ipv6 mode sit remote 客户公网IPv4地址 local 服务器IPv4地址 ttl 255
ip link set server-ipv6 up
ip addr add 服务器IPv6地址网关::1/80 dev server-ipv6
ip route add 服务器IPv6 Route地址::/80 dev server-ipv6
echo "net.ipv6.conf.all.forwarding = 1" >>/etc/sysctl.conf
sysctl -p

配置完成后需要添加邻居信息服务,防止IPv6地址无法被广播识别。

wget https://github.com/DanielAdolfsson/ndppd/archive/0.2.5.tar.gz
tar zxvf 0.2.5.tar.gz
cd ndppd-0.2.5
make
make install

vi /etc/ndppd.conf

route-ttl 30000
proxy eth0 {
router yes
timeout 500
ttl 30000
rule 你的:IPv6:子网:前缀::/前缀长度 {
static
}
}

ndppd -d

配置完成后客户端应该可以直接使用分配的IPv6地址了。这里需要注意的是/64的IPv6地址需要切分成/80的子网,然后进行广播设置。配置工具可以使用https://github.com/sskaje/6in4

但是使用的时候需要将sipcalc安装上,否则无法正确使用。使用方法:

cd 6in4-master/etc/
vi config.ini

; IPv6 network, must be ending with '::'
; * Required
IPV6_NETWORK=你的:IPv6:子网:前缀::

; IPV6 CIDR, must be a multiple of 8.
; * Required
; If your IPV6_CIDR is smaller than /64, assigned blocks are /64; if smaller than /48, /48 is used.
; If IPV6_CIDR is greater than /64, assigned blocks are /(IPV6_CIDR + 16 [ + 8 ]), e.g.: 64->80, 72->96, 80->96
IPV6_CIDR=前缀长度

; Bind tunnel to device INTERFACE
; * Required
INTERFACE=接口名

; Local IPv4
; * Optional
; This is useful if your $INTERFACE has more than one IP.
; If BIND_IP is not set, script reads first IPv4 ip from $INTERFACE
;BIND_IP=1.1.1.1 若接口上有多于1个IPv4地址 需要绑定

; MTU
; Default: 1480
;LINK_MTU=1480

:wq

cd 6in4-master
./bin/6to4 add 1 233.233.233.233

***************************** WARNING ********************************
IPV6_CIDR greater than 64 may cause your subnet not advertisable.
***************************** WARNING ********************************

Please set up tunnel on your machine with following parameters:
    Server IPv4 Address:        1.1.1.1
    Server IPv6 Address:        2001:0db8:0001:0001:1001::1/80
    Client IPv4 Address:        233.233.233.233
    Client IPv6 Address:        2001:0db8:0001:0001:1001::2/80
    Routed /80:                 2001:0db8:0001:0001:2001::/80

If you don't have a static IP, set your local to 0.0.0.0 and invoke update api to update your endpoint

 

Surface Pro 4 安装Kali Linux教程

关于Kali Linux

Kali Linux是基于Debian的Linux发行版, 设计用于数字取证操作系统。由Offensive Security Ltd维护和资助。最先由Offensive Security的Mati Aharoni和Devon Kearns通过重写BackTrack来完成,BackTrack是他们之前写的用于取证的Linux发行版 。
Kali Linux预装了许多渗透测试软件,包括nmap 、Wireshark 、John the Ripper,以及Aircrack-ng.[2] 用户可通过硬盘、live CD或live USB运行Kali Linux。Kali Linux既有32位和64位的镜像。可用于x86 指令集。同时还有基于ARM架构的镜像,可用于树莓派和三星的ARM Chromebook。

Surface Pro 4 设置关闭UEFI和TPM

按音量+键的同时按下开机键,Surface Pro 4 会进入Surface Pro 4的BIOS,在设置中可以关闭UEFI和TPM(貌似不关没法装Linux系统,有验证)

Surface Pro 4 设置U盘启动

同样的方法,按音量+键的同时按下开机键,Surface Pro 4 会进入Surface Pro 4的BIOS,在设置中可以设置从USB启动,这里操作就直接拖动就可以,支持触摸屏操作。

制作Kali Linux安装盘

推荐使用Rufus来进行Kali Linux的U盘制作,并使用DD模式,否则可能无法载入安装,只能进行Live。

Surface Pro 4安装Kali Linux

都是图形界面,就跟Ubuntu这些一样,没啥好说的,也没什么困难。只有一点,就是Windows要提前准备出一些空间,用Windows自带的计算机管理来压缩系统盘,然后就可以生成一些剩余空间来安装Kaili Linux了。

收尾

安装成功就结束了?不不不,不是这样子的,你会发现,你的触摸屏用不了,这个用不了,那个用不了,好吧,奶牛推荐个大神的Git:https://github.com/jakeday/linux-surface

奶牛为啥推荐大神的Git呢,因为看看人家都做了啥:

支持设备:

  • Surface Book
  • Surface Book 2
  • Surface Go
  • Surface Laptop
  • Surface Laptop 2
  • Surface Pro 3
  • Surface Pro 4
  • Surface Pro 2017
  • Surface Pro 6
  • Surface Studio

支持功能:

  • Keyboard (and backlight)
  • Touchpad
  • 2D/3D Acceleration
  • Touchscreen
  • Pen
  • WiFi
  • Bluetooth
  • Speakers
  • Power Button
  • Volume Buttons
  • SD Card Reader
  • Cameras (partial support, disabled for now)
  • Hibernate
  • Sensors (accelerometer, gyroscope, ambient light sensor)
  • Battery Readings
  • Docking/Undocking Tablet and Keyboard
  • Surface Docks
  • DisplayPort
  • USB-C (including for HDMI Out)
  • Dedicated Nvidia GPU (Surface Book 2)

不正常项目:

  • Dedicated Nvidia GPU (if you have a performance base on a Surface Book 1, otherwise onboard works fine)
  • Cameras (not fully supported yet)
  • Connected Standby is not supported yet

这个项目已经把Ubuntu或者Debian的内核更新到了5.1.15-1,可以从https://github.com/jakeday/linux-surface/releases进行下载。当然,人家也提供了一键脚本,https://github.com/jakeday/linux-surface/raw/master/setup.sh,脚本运行需要clone整个项目。具体看看人家的Git应该就能看明白了。

补充下grub分辨率问题,Surface Pro 4 的分辨率有些奇葩,经过配置发现修改/etc/default/grub文件,将

GRUB_GFXMODE=1024x768

然后重新生成grub.conf

grub-mkconfig -o /boot/grub/grub.cfg

重启之后就可以看到一个奶牛觉得比较习惯的Grub界面了。

SSH与Linux主机交互文件传输工具lrzsz安装使用教程

以前传文件,奶牛一直是喜欢搭个web,然后直接把服务器文件扔上去然后从本地下载,或者用Bitvise SSH的SFTP工具来传输,直到忘了多久之前看到一个教学视频里面,有直接通过一条命令来传输本地文件到服务器上。最近无意中又看到了这个软件,名字叫lrzsz,推荐搭配Xshell这个SSH工具来使用。

lrzsz安装

CentOS下安装:

yum -y install lrzsz

Ubuntu下安装:

apt-get install lrzsz

lrzsz使用教程

lrzsz分开是两个命令,一个是rz,一个是sz。rz是用来从本地文件传输到服务器端,sz是用来从服务器端拉取文件到本地的。

使用方法也很简单:

sz filename
rz

其中sz后面直接加文件路径或者当前路径下的文件名即可,rz直接回车在Xshell下会直接弹出对话框来选择需要上传的文件的。

Comodo Positive SSL申请过程

黑五过去了,留下了一些折腾。不过还好,今天蛮有收获的。

说下Comodo Positive SSL到底怎么申请怎么用。对于Nginx用户来说,添加SSL就需要两个文件,一个是private.key,一个是domain.cer。其中private.key是我们自己生成的,cer是得花钱买的,当然也可以自己签,但是自己签的浏览器不认。

private.key的生成我们需要了解一个东西叫CSR。根据百科的内容是这样介绍的:

CSR是Certificate Signing Request的英文缩写,即证书请求文件,也就是证书申请者在申请数字证书时由CSP(加密服务提供者)在生成私钥的同时也生成证书请求文件,证书申请者只要把CSR文件提交给证书颁发机构后,证书颁发机构使用其根证书私钥签名就生成了证书公钥文件,也就是颁发给用户的证书。

生成private.key的方法很多,奶牛就不介绍了,使用linux或者windows下的签名软件生成,或者现在已经有很多网站支持在线生成CSR了,直接生成就可以。生成完成后我们得到csr.cer和private.key两个文件。

然后我们需要将csr.cer的内容提交给Comodo,然后需要一个验证过程,叫Domain Control Validation (DCV) 。这个验证过程有几种方式:

1.邮件,但是需要域名的[email protected]的邮箱可以接收邮件,这个比较麻烦,pass掉。

2.dns,这个可以,添加一个记录即可。

3.http文件,这个需要你下载他们的验证文件,然后使http://domain.com/.well-known/pki-validation/file.txt可以验证这个文件,这个方案也可以。

验证通过后就可以得到domain.cer了,然后修改nginx的conf文件增加ssl证书即可。

华硕Z270F主板关机后USB不断电的解决方案

 USB关机不断电原因在于关机后并没有进入S5模式。解决方案:

1.BIOS设置电源的Erp到S5,默认选项是关闭,重启进入系统。

2.进入Windows电源管理,把快速启动选项去掉,这样可以让系统关闭后自动断电。

3.在BIOS中设置Erp到S5后会发现开机的时候Aura灯还是亮的,但是进入系统后Led就不亮了,解决方案是手动把BIOS的Led选项设置为开启,并把关机后Led设置为关闭。

通过上述三步设置可以解决华硕Z270F主板关机USB不断电的问题。

Office 2016已激活仍有Office 365弹窗问题解决方案

To resolve this problem, export the following registry keys and delete from computer.

  1. Close activation screen.
  2. On the Start menu, click Run.
  3. Type regedit, and then press Enter.
  4. Select the following key in the registry.
    HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Office\16.0\Common\OEM
  5. Right click the OEM value and click File>Export.
  6. Save the key
  7. Once the key is backed-up, click on Edit>Delete
  8. Repeat steps 4-7 with following key
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\16.0\Common\OEM
    Exit Registry Editor
Windows 10触屏手势软件推荐GestureSign

 对于一个触屏系统,我个人感觉手势太关键了,毕竟还是能脱离鼠标是最好的,但是单靠屏幕的触摸却没法做那么好,所以呢,必须得有手势系统的支持,然而windows10竟然默认都没有手势系统自定义的支持,只有几个简单的手势支持,没有自定义,简直是太不够了。所以推荐软件GestureSign,比那个Touchme的手势好用(其实全英文也可以接受,关键是貌似没有效果,根本用不了)。

软件使用也很简单,就是简单的手势加功能就可以了。不过说明一点叫sendkeys,这个可能当你需要send回车键什么的时候就不知道该怎么办了。其实sendkeys功能还是很强大的,下面找到一个写这些键的说明

按键
代码
BACKSPACE
{BACKSPACE}, {BS}或{BKSP}
BREAK
{BREAK}
CAPS LOCK
{CAPSLOCK}
DEL or DELETE
{DELETE} 或 {DEL}
ENTER
{ENTER}或 ~
ESC
{ESC}
NUM LOCK
{NUMLOCK}
SCROLL LOCK
{SCROLLLOCK}
UP ARROW
{UP}
DOWN ARROW
{DOWN}
LEFT ARROW
{LEFT}
RIGHT ARROW
{RIGHT}
END
{END}
HOME
{HOME}
INS or INSERT
{INSERT} 或 {INS}
PAGE DOWN
{PGDN}
PAGE UP
{PGUP}
PRINT SCREEN
{PRTSC}
WIN
^{ESC}
TAB
{TAB}
HELP
{HELP}
F1
{F1}
F2
{F2}
F3
{F3}
F4
{F4}
F5
{F5}
F6
{F6}
F7
{F7}
F8
{F8}
F9
{F9}
F10
{F10}
F11
{F11}
F12
{F12}
注意:如果要输出空格可以这样编写程序:“sendkeys(" ")"
为了指定那些与 SHIFT、CTRL 及 ALT 等按键结合的组合键,可在这些按键码的前面放置一个或多个代码,这些代码列举如下:为了说明在按下其它按键时应同时按下 SHIFT、CTRL、及 ALT 的任意组合键,请把那些按键的码放在括号当中。例如,为了说明按下 E 与 C 的时候同时按下 SHIFT 键,请使用 "+(EC)"。为了说明在按下 E 的时候同时按下 SHIFT 键,但接着按 C 而不按 SHIFT,则使用 "+EC"。为了指定重复键,使用 {key number} 的形式。必须在 key 与 number 之间放置一个空格。例如,{LEFT 42} 意指 42 次按下 LEFT ARROW 键;{h 10} 则是指 10 次按下 H 键。

 

已安装的附加组件因未经验证而被 Firefox 禁用的解决方法

 

每每firefox就自动升级,升级之后还把很多附加组件给禁用了,真的让奶牛比较头疼,直接把它这个功能禁用了吧。

1.在地址栏输入about:config

2.搜索xpinstall.signatures.required

3.点击下使布尔值true变为false

4.重启浏览器,看看咱的附加组件是不是又回来了

Nginx服务器配置多域名指向同服务器

 

当我们用Nginx服务器添加新的虚拟主机的时候,都会生成一个vhost的conf文件,当我们把同一个域名的@和www两个地址都直接A解析到Nginx服务器的时候,会发现只有我们添加的vhost里面的那个域名会被正常解析,如果我们想把@和www两个地址都直接解析到这个vhost上,我们可以这样做。

  1. vim /usr/local/nginx/conf/vhost/www.nenew.net.conf 
  2. 修改字段server_name,比如如下方式 
  3. server_name nenew.net www.nenew.net; 

这样子可以直接将nenew.net和www.nenew.net都指向到这个vhost而不用什么301 302那种跳转,好久不搞linux了,奶牛打算弄个新站,重新拾起web。

设置完成后重启Nginx就搞定了。