如何彻底关闭 macOS Server 中的 Apache 服务,释放80 443端口

通常情况下,如果你想关闭 macOS 上的 Apache 服务,你只需要输入一下任意一个命令即可:

launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist

apachectl stop

apachectl -k stop

但是,如果你在Mac上安装了 macOS Server,那么你将无法简单的关闭 Apache 服务。即使你输入以上命令,你会发现80和443端口依然被 Apache 占用,且打开网页会显示如本文开头的图片。“网站已关闭。管理员可以使用 Server 应用程序来打开这些网站。”

如果要彻底关闭 macOS Server 提供的 Apache 服务,你应该输入以下命令:

sudo launchctl unload -w /Applications/Server.app/Contents/ServerRoot/System/Library/LaunchDaemons/com.apple.serviceproxy.plist

Ngrok 搭建指南

文章转载至 Luozm’s Blog

ngrok是一个反向代理,它能够让你本地的web服务或tcp服务通过公共的端口和外部建立一个安全的通道,使得外网可以访问本地的计算机服务。ngrok1.x开源,ngrok2.x不开源。

ngrok

Ngrok的主要用途有以下几种:

  • 内网穿透,可代替vpn
  • 将无外网IP的desktop映射到公网
  • 临时搭建网络并分配二级域名
  • 微信二次开发的本地调试

自己搭建ngrok服务需要一台外网服务器,一个域名(如果只用来内网穿透好像也可以不要?)。本文中使用的服务器系统为Ubuntu 16.04。

Read more

CentOS6.4 搭建 LNMP+Postfix+Dovecot+Postfixadmin+Roundcubemail 企业邮件环境

1.先下载安装软件包并搭建好 LNMP 环境(略)

2.编译安装postfix-2.9.3。
2.1创建postfix用户和组,且指定GID最好为大于1000的数值。
# groupadd -g 2525 postfix
# useradd -g postfix -u 2525 -s /sbin/nologin -M postfix
# groupadd -g 2526 postdrop
# useradd -g postdrop -u 2526 -s /sbin/nologin -M postdrop

2.2 编译安装postfix

Read more

使用 Git 命令管理 GitHub 已存在的项目

网上有很多使用 Git 与 GitHub 同步的教学文章,但是大多是都是从 init 一个项目开始,这篇文章主要是主导如何管理一个已经在 GitHub 上存在的项目,比如你直接在 GitHub 上 focked 了一个别人的项目,你克隆到本地然后再提交去 GitHub。

1、设置 GitHub SSH 访问密钥
本地生成指纹文件:
ssh-keygen -t rsa -C "[email protected]"
会提示你选择保存文件的路径和密码,路径可以默认,密码可以直接回车留空
默认会在你的 .ssh 文件夹下生成密码文件

复制生成的 pub 文件内容粘贴到你的 GitHub 账户设置的 SSH Key 中:
cat /home/builder/.ssh/id_rsa.pub Read more

解决 Windows 访问 macos Server 文件共享时 OD 密码验证失败的问题

原文出处:https://discussions.apple.com/thread/5483728?start=0&tstart=0

问题情况:

Open Directory 密码服务报错:

DoAuth: {0xd666eb1e840a11e78d78320019de5b40, %username%} SMB-NTLMv2 authentication failed, SASL error -13 (password incorrect).

解决办法:

On command line….

1. Enter “gpedit.msc” in the Start Search box.
2. Open “Computer Configuration”/Windows Settings/Security Settings/Local Policies/Security Settings.
3. In the right pane, enable the following policies:

Network access: Allow anonymous SID/name translation
Network access: Let Everyone permissions apply to anonymous users

Also please disable the following policies.

Network access: Restrict anonymous access to Named Pipes and Shares
Network access: Do not allow anonymous enumeration of SAM accounts
Network access: Do not allow anonymous enumeration of SAM accounts and shares

Change the following policy:

Network security: LAN Manager authentication level

Change the value to “Send LM & NTLM – use NTLMv2 session security if negotiated”.

P.S: 如果不行就设置为“仅发送 NTLMv2 响应”。这样的话可能导致 Windows 不能访问其他 Windows 电脑的共享。
Read more

Netgear WNR2000 无线路由器 LAN 口变 WAN 口

文章出处:http://blog.sina.com.cn/s/blog_5f880b9b0100gdwn.html

最近一两天家里的无线路由速度突然变得极不稳定,时快时慢。开始以为是方正宽带的问题,后来打电话给方正,说他们那里是正常的。于是怀疑是无线路由的问题。

把路由器拿出来看了一下,没发现异常,再重新连上网线,问题出现,不能上网了。症状是:无线连接正常,ping路由器的局域网地址正常,ping路由器的wan口地址正常,ping上级交换机地址不通。怀疑是外网网线问题,但把网线直接接到电脑上又一切正常。

于是怀疑是路由器的端口坏了。仔细观察路由器上的网线接口,发现wan口的8个簧片中有一个有些塌陷,估计会跟网线水晶头不能很好接触,导致接触不良。

先用针挑了一下塌陷的簧片,发现不能使其完全复原。这样情况下,即使勉强能用,接触肯定还是会有问题,不知道什么时候就又坏了。还是换个思路吧。一是换一个wan口接头,这需要去买一个接口,还得把原来的焊下来,把新的焊上去,我自己肯定没有这个手艺,要跑电脑城,麻烦。二是借用一下剩下4个好用的lan口中的一个来做wan口,这个好吧,只要改一下路由器固件设置就ok了。
我的路由装的是dd-wrt mini版,google如何把lan口变wan口,几乎没有,把wan口变lan口,把路由器变成一个5口交换机的教程倒是挺多,貌似也很简单,把wan口跟lan口设置到一个vlan中就行了,http://cisco.chinaitlab.com/configure/783022.html
Read more

网络普通用户群体 IPv6 常见问题解答

文章转载至 ICANN

本 FAQ(常见问题解答)由网络普通用户群体成员为 2009 年 3 月的网络普通用户峰会编写。

A. 基本问题

A1. IPv6 是什么?
A2. 为什么需要引入 IPv6?
A3. IPv6 地址的格式和语法是什么?
A4. IPv4 和 IPv6 可以并存吗?

B. 用户角度 - 访问

B1. 如何在 Windows XP 上启用 IPv6? 
B2. 如何在 Vista 上启用 IPv6?
B3. 如何在 Mac 上启用 IPv6?
B4. 如何在其他操作系统上启用 IPv6?
B5. 如何使用 IPv6 来访问互联网?
a. 纯粹 IPv6
b. 使用隧道技术穿越 IPv4 进行 IPv6 连接 (Teredo、6to4、6in4 等)
– Windows:Teredo 隧道技术
– Mac OS X:Teredo 隧道技术
– Mac OS X:6to4 隧道技术
– 其他操作系统:6to4 和 6in4 隧道技术
c. 特例:移动设备(PDA 等)

C. 焦点问题

C1. IPv6 会带来新的安全漏洞吗?
C2. IPv6 比 IPv4 更快还是更慢?
C3. IPv6 有什么 IPv4 不具备的功能吗?
C4. IPv4 将来会被关闭吗?
C5. 哪些硬件设备(ADSL 调制解调器等)能与 IPv6 兼容?
C6. 哪些 ISP(互联网服务提供商)会提供 IPv6 服务?
C7. 我很好奇,为什么不提 IPv5?
C8. 哪里可以找到关于 IPv6 的更多信息?

Read more

SSR QRcode scheme

由于日益恶劣的网络环境,本文章复制至 Github 原文,已备不时之需。

基本定义

定义base64为URL safe base64,且不带padding(没有末尾的等于号),具体格式如下:

ssr://base64(host:port:protocol:method:obfs:base64pass/?obfsparam=base64param&protoparam=base64param&remarks=base64remarks&group=base64group&udpport=0&uot=0)

其中,base64pass及之前以’:’分隔的,不可省略,而’/?’及其后面的内容,可按需要写上。
字符串使用UTF8编码,编码后必须以urlsafebase64编码,包括密码、混淆参数、协议参数、备注、group

udpport参数及uot目前仅C#客户端支持

示例:

服务器IP: 127.0.0.1
端口: 1234
密码: aaabbb
加密: aes-128-cfb
协议: auth_aes128_md5
协议参数: (空)
混淆: tls1.2_ticket_auth
混淆参数: breakwa11.moe
备注: 测试中文

生成的带备注结果:
ssr://MTI3LjAuMC4xOjEyMzQ6YXV0aF9hZXMxMjhfbWQ1OmFlcy0xMjgtY2ZiOnRsczEuMl90aWNrZXRfYXV0aDpZV0ZoWW1KaS8_b2Jmc3BhcmFtPVluSmxZV3QzWVRFeExtMXZaUSZyZW1hcmtzPTVyV0w2Sy1WNUxpdDVwYUg

生成的不带备注的标准结果(结果唯一):
ssr://MTI3LjAuMC4xOjEyMzQ6YXV0aF9hZXMxMjhfbWQ1OmFlcy0xMjgtY2ZiOnRsczEuMl90aWNrZXRfYXV0aDpZV0ZoWW1KaS8_b2Jmc3BhcmFtPVluSmxZV3QzWVRFeExtMXZaUQ

如果你生成的不带备注的结果结果与上面的不一致,那么请检查实现代码,否则可能导致部分环境下识别错误。

多链接组合

用于同时导入或导出多个链接使用

标准导出格式形如:

ssr://aaa
ssr://bbb
ssr://ccc

或者

ssr://aaa ssr://bbb ssr://ccc

即使用换行分隔或空格分隔,注意换行可能因平台不同而产生三种不同的换行格式

其它格式例如使用”|”作为分隔符,尽管多数客户端仍然能识别,但也不建议使用此格式,请不要以客户端能识别作为判断标准。

obfs 协议和混淆插件说明

由于日益恶劣的网络环境,本文章复制至 Github 原文,已备不时之需。

具体说明参阅https://github.com/breakwa11/shadowsocks-rss/blob/master/ssr.md,这里提供一个给新人简易的指导(如文档有变动以以上这个链接的文档为准)

工作原理

C->S方向
浏览器请求(socks5协议) -> ssr客户端 -> 协议插件(转为指定协议) -> 加密 -> 混淆插件(转为表面上看起来像http/tls) -> ssr服务端 -> 混淆插件(分离出加密数据) -> 解密 -> 协议插件(转为原协议) -> 转发目标服务器

其中,协议插件主要用于增加数据完整性校验,增强安全性,包长度混淆等,混淆插件主要用于伪装为其它协议

客户端

客户端的协议插件暂无配置参数,混淆插件有配置参数,混淆插件列表如下:

plain:不混淆,无参数

http_simple:简易伪装为http get请求,参数为要伪装的域名,如cloudfront.com。客户端上支持用逗号分隔多个域名如a.com,b.net,c.org,连接时会随机使用其中之一。不填写参数时,会使用此节点配置的服务器地址作为参数。

http_post:与http_simple绝大部分相同,区别是使用POST方式发送数据,欺骗性更好,但只有POST请求这种行为容易被统计分析出异常。参数配置与http_simple一样

tls1.2_ticket_auth:伪装为tls请求。参数配置与http_simple一样

其它插件不推荐使用,在这里忽略

客户端的协议插件,仅建议使用origin,auth_sha1_v4,auth_aes128_md5,auth_aes128_sha1,auth_chain_a,解释如下:
origin:原版协议,为了兼容
auth_sha1_v4:较高安全性,有宽松的时间校对要求,混淆强度大
auth_aes128_md5auth_aes128_sha1:高安全性,有宽松的时间校对要求,计算量相对高一些,混淆强度较大
auth_chain_a:高安全性,有宽松的时间校对要求,计算量相对高一些,混淆强度较大

如不考虑兼容,可无视第一个,其它基本均已否决。

服务端

大部分插件都可以通过添加_compatible后缀以表示兼容原版,例如默认的http_simple_compatibleauth_sha1_v4_compatible这样

服务端的协议插件,仅auth_*系列有协议参数,其值为整数。表示允许的同时在线客户端数量,建议最小值为2。默认值64。但auth_chain_a协议例外,此协议的在线数量是实时的,精确的,参数可以最小设置为1。

服务端的混淆插件,http_simplehttp_post有混淆参数,用逗号分开若干个host,表示客户端仅能使用以上任一个host连接,而留空表示客户端可以使用任意host。tls1.2_ticket_auth有混淆参数,其值为整数,表示与客户端之间允许的UTC时间差,单位为秒,为0或不填写(默认)表示无视时间差

其它说明参见客户端部分

总结

如不考虑原版的情况下,推荐使用的协议,只有auth_sha1_v4auth_aes128_md5auth_aes128_sha1auth_chain_a,推荐使用的混淆只有plain,http_simple,http_post,tls1.2_ticket_auth

不要奇怪为什么推荐plain,因为混淆不总是有效果,要看各地区的策略的,有时候不混淆让其看起来像随机数据更好

ShadowsocksR 协议插件文档

由于网络环境愈加恶劣,文章复制至 Github 原文,已备不时之需。

概要

用于方便地产生各种协议接口。实现为在原来的协议外套一层编码和解码接口,不但可以伪装成其它协议流量,还可以把原协议转换为其它协议进行兼容或完善(但目前接口功能还没有写完,目前还在测试完善中),需要服务端与客户端配置相同的协议插件。插件共分为两类,包括混淆插件和协议定义插件。

现有插件介绍

1.混淆插件

此类型的插件用于定义加密后的通信协议,通常用于协议伪装,部分插件能兼容原协议。

plain:表示不混淆,直接使用协议加密后的结果发送数据包

http_simple:并非完全按照http1.1标准实现,仅仅做了一个头部的GET请求和一个简单的回应,之后依然为原协议流。使用这个混淆后,已在部分地区观察到似乎欺骗了QoS的结果。对于这种混淆,它并非为了减少特征,相反的是提供一种强特征,试图欺骗GFW的协议检测。要注意的是应用范围变大以后因特征明显有可能会被封锁。此插件可以兼容原协议(需要在服务端配置为http_simple_compatible),延迟与原协议几乎无异(在存在QoS的地区甚至可能更快),除了头部数据包外没有冗余数据包,客户端支持自定义参数,参数为http请求的host,例如设置为cloudfront.com伪装为云服务器请求,可以使用逗号分割多个host如a.com,b.net,c.org,这时会随机使用。注意,错误设置此参数可能导致连接被断开甚至IP被封锁,如不清楚如何设置那么请留空。服务端也支持自定义参数,意义为客户端仅能填写的参数列表,以逗号分割。
本插件的高级设置(C#版、python版及ssr-libev版均支持):本插件可以自定义几乎完整的http header,其中前两行的GET和host不能修改,可自定义从第三行开始的内容。例子:
baidu.com#User-Agent: abc\nAccept: text/html\nConnection: keep-alive
这是填于混淆参数的内容,在#号前面的是上文所说的host,后面即为自定义header,所有的换行使用\n表示(写于配置文件时也可直接使用\n而不必写成\n,换行符亦会转换),如遇到需要使用单独的\号,可写为\\,最末尾不需要写\n,程序会自动加入连续的两个换行。

Read more