早些年也试过这个模式,当时技术储备还不够,可以说完全玩不转,今天做了个较全面的总结,在Vultr上面试行了一下,达到预期了。
在core模式下,Windows Server 2012 R2版本的话,系统自身占内存300多,也就是说用512M的配置运行一些网站什么是足够的,较大型网站或者较多网站的话,1G也足够了。
如果用gui版本,则1G内存运行起来是较吃力的,印象中1G运行gui本身就挺吃力的。
本文设计系统安装完成以后的IIS安装、设置、防火墙设置等,以及一些平时使用较方便的方法。绝大多数是在命令行下完成。
闲话少说,首先是设置IP和DNS,注意,如果网卡名称有空格的话要用双引号括起来:
设置固定IP:netsh interface ip set address name=以太网 source=static addr=192.168.1.250 mask=255.255.255.0 gateway=192.168.1.1 设置首选DNS:netsh interface ip set dns name=以太网 source=static addr=8.8.8.8 register=primary 设置备用DNS:netsh interface ip add dns name=以太网 addr=9.9.9.9
开启远程桌面(需要后面的防火墙设置以后才能连上)
cscript C:\Windows\System32\scregedit.wsf /AR 0
禁用自动更新和一些用不上的服务:
sc config Dhcp start=disabled sc config Browser start=disabled sc config Spooler start=disabled sc config RemoteRegistry start=disabled sc config LanmanServer start=disabled sc config lmhosts start=disabled sc config LanmanWorkstation start=disabled sc config wuauserv start=disabled reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update" /v AUOptions /t REG_DWORD /d 0 /f
关闭dep
bcdedit.exe /set {current} nx AlwaysOff
更改管理员名:
wmic UserAccount where Name="Administrator" call Rename Name="zdw"
关闭复杂密码策略
首先
start powershell
然后在power shell里面执行:
secedit /export /cfg c:\secpol.cfg (gc C:\secpol.cfg).replace("PasswordComplexity = 1", "PasswordComplexity = 0") | Out-File C:\secpol.cfg secedit /configure /db c:\windows\security\local.sdb /cfg c:\secpol.cfg /areas SECURITYPOLICY rm -force c:\secpol.cfg -confirm:$false
修改计算机名称:
Netdom RenameComputer %ComputerName% /NewName:tingtao-svr
安装IIS、FTP、CGI
PKGMGR.EXE /l:log.etw /iu:IIS-WebServerRole;IIS-WebServer;IIS-CommonHttpFeatures;IIS-StaticContent;IIS-DefaultDocument;IIS-DirectoryBrowsing;IIS-HttpErrors;IIS-HttpRedirect;IIS-ApplicationDevelopment;IIS-CGI;IIS-HealthAndDiagnostics;IIS-HttpLogging;IIS-RequestMonitor;IIS-Security;IIS-BasicAuthentication;IIS-RequestFiltering;IIS-IPSecurity;IIS-Performance;IIS-HttpCompressionStatic;IIS-WebServerManagementTools;IIS-ManagementScriptingTools;IIS-FTPServer;IIS-FTPSvc;
设置FTP的Pasv端口范围(需要与防火墙策略匹配)
%windir%\system32\inetsrv\appcmd set config /section:system.ftpServer/firewallSupport /lowDataChannelPort:65000 /highDataChannelPort:65530
添加FTP站点,用户隔离为各自主目录:
%windir%\system32\inetsrv\appcmd add site /name:FTP /bindings:"ftp/*:21:" /physicalPath:"C:\inetpub\ftproot" /ftpServer.serverAutoStart:"true" /ftpServer.userIsolation.mode:"StartInUsersDirectory" /ftpServer.security.authentication.anonymousAuthentication.enabled:"true" /ftpServer.security.authentication.basicAuthentication.enabled:"true" /ftpServer.security.ssl.ssl128:"false" /ftpServer.security.ssl.controlChannelPolicy:"SslAllow" /ftpServer.security.ssl.dataChannelPolicy:"SslAllow" %windir%\system32\inetsrv\appcmd set config FTP -section:system.ftpServer/security/authorization /+"[accessType='Allow',users='Administrators',permissions='Read, Write']" /commit:apphost
设置防火墙策略(注意ftp的端口范围要跟上面匹配)
#禁用防火墙先 netsh firewall set opmode disable #删除所有规则 netsh advfirewall firewall delete rule name=all #逐条添加 netsh advfirewall firewall add rule name="allowRemoteDesktop" protocol=TCP dir=in localport=3389 action=allow netsh advfirewall firewall add rule name="allowICMP" protocol=icmpv4 dir=in action=allow netsh advfirewall firewall add rule name="allowICMPV6" protocol=icmpv6 dir=in action=allow netsh advfirewall firewall add rule name="allowHttp" protocol=TCP dir=in localport=80,443,1001-1004,101-110 action=allow netsh advfirewall firewall add rule name="allowFtp" protocol=TCP dir=in localport=20,21,65000-65530 action=allow netsh advfirewall firewall add rule name="allowMySQL" protocol=TCP dir=in localport=3306 action=allow netsh advfirewall firewall add rule name="allowSQLServer" protocol=TCP dir=in localport=1433 action=allow #启用防火墙 netsh firewall set opmode enable
创建网站:创建用户、设置组、创建网站目录、添加FTP虚拟目录和IIS站点,创建并使用独立进程池
net user www.tingtao.org 密码 /add /y net localgroup guests www.tingtao.org /add net localgroup users www.tingtao.org /delete net user www.tingtao.org /active:yes mkdir C:\WEB\www.tingtao.org xcacls "C:\WEB\www.tingtao.org" /g administrators:f system:f "network service":r www.tingtao.org:C /t /c /y %windir%\system32\inetsrv\appcmd add apppool /name:"www.tingtao.org" /PipelineMode:"Classic" /managedRuntimeVersion:"" /managedPipelineMode:Classic %windir%\system32\inetsrv\appcmd add site /name:"www.tingtao.org" /bindings:"http/*:80:www.tingtao.org" /physicalPath:"C:\WEB\www.tingtao.org" /applicationDefaults.applicationPool:"www.tingtao.org" /virtualDirectoryDefaults.username:"www.tingtao.org" /virtualDirectoryDefaults.password:"密码" %windir%\system32\inetsrv\appcmd add vdir /app.name:"FTP/" /path:/www.tingtao.org /physicalPath:C:\WEB\www.tingtao.org %windir%\system32\inetsrv\appcmd set config FTP -section:system.ftpServer/security/authorization /+"[accessType='Allow',users='www.tingtao.org',permissions='Read, Write']" /commit:apphost
=====================
日常使用方面
下载文件可以这样:
certutil.exe -urlcache -split -f http://www.tingtao.org/data.zip
代替资源管理器的话,其实比较方便的是flashfxp,因为这玩意不可避免的会用到,所以虽然有更像资源管理器的程序,但没必要多装一个了。
任务管理器: taskmgr
注册表编辑器:regedit
重启:shutdown /r /t 0
注销:logoff
其他什么的,像winrar什么的都可以装,图形程序也可以安装并且使用,因为core版本只是摘除了windows自身的图形界面,并不是说有窗口的程序就不能用了。
补充一下,我好像忘了添加ssl证书并且绑到站点上,回头补上。