WSL跑linux服务程序
前段时间折腾了一次WSL下的Apache,无奈遇到各种奇葩问题,总是解决不了,最终放弃,甚至得出了一个现在看来比较可笑的结论:WSL是不可能跑Linux服务程序的!
当时的思路想歪了,由于Apache启动时报的一个错误“IN6_IS_ADDR_V4MAPPED”,就一直往IPV6的方向折腾,觉得WSL是不支持IPV6的,所以最终没搞定!不过当时按照网上的说法,禁用了Win10的IPV6之后,重启系统确实Apache服务可以正常启动了,但启动之后貌似正常监听了80端口,但页面依然不能访问!至此我就判定了WSL是个废柴!不能跑Linux服务程序!
今天又一次机缘巧合,还是需要再折腾一下WSL下的Apache,这一次终于搞定了!!!
上午在查询资料的过程中,浏览到一些WSL方面的资料,顺便收藏了一下,打算晚上抽空再尝试一下,都是来自WSL官方github的几个资料:
- all app run in wsl can not listen to any ports
- Assertion `IN6_IS_ADDR_V4MAPPED (sin6-_sin6_addr.s6_addr32)' failed
- Unable to open any PORT in bash
- Issue with WSL listening to TCP ports
趁晚饭之前有点空,就大概看了一下,发现很多人都是由于TencentTGP或者一些VPN软件导致的,所以决定这次折腾的方向是网络驱动,按照指示下载了一个DriverView,查看了一下,果然有个VPN的驱动在系统里!之前由于工作需要,安装了Sangfor的VPN客户端,后来记得把能卸载的都卸载了,但还遗留了这个祸害!(system32/drivers中,SangforVnic.sys和vpntdi64.sys)尝试删除,还删除不了,但发现可以改名,于是改名、重启系统,果然Apache可以正常启动了,而且页面也可以访问了!!!激动啊!!!
匆匆吃完晚饭,回来接着折腾,仔细检查了一下系统,发现Sangfor的残留还不少!而且很顽固!感觉Sangfor有点流氓软件的性质,安装很方便、很自动,卸载却各种万难!甚至在Win10系统中根本无法卸载,一点卸载程序就报错!强行删除安装目录又会导致整个电脑的网络瘫痪,真是太让人恶心了!参考网友的解决方案,总算是把Sangfor清理干净了!我的系统好像和作者的情况不太一样,不需要进安全模式,直接到注册表里删除winsock和winsock2,然后导入两个reg文件(点击下载,来自网友提供的Win10家庭版,我的专业版目前正常,不保证所有系统都正常),重启就可以了。
最后强烈大家谨慎使用Sangfor的产品!如果实在迫不得已,建议在虚拟机里使用,使用后可以还原虚拟机,不留后患!
PS. 更改默认用户已经不再是使用“lxrun /setdefaultuser”命令了,而是使用各发行版自己的命令代替了,比如ubuntu.exe或debian.exe config --default-user root,这样就设置默认用户为root了。管理各个发行版也使用wslconfig命令了,可以使用wslconfig /setdefault debian 设置debian为默认发行版(执行bash或wsl命令自动进入的发行版),非默认发行版也可以执行各自的命令进入,比如ubuntu.exe可以进入Ubuntu,可以参考MS官方的两个链接:
账号管理:https://docs.microsoft.com/en-us/windows/wsl/user-support
发行版管理:https://docs.microsoft.com/en-us/windows/wsl/wsl-config
PS. 注意:虽然Windows本身也支持文件名的大小写,但文件系统中记录的应该是同一个文件,但WSL却不同,它创建的指定格式大小写的文件名与Windows的模式不同,我在WSL中通过git clone命令创建的项目目录,在VS中打开时(解决方案中的文件名大小写与实际文件名的大小写不一致)总是提示找不到文件(而且在IIS中运行的时候总是报404错误【MVC项目】,折腾了好久,以为是IIS站点MVC配置问题,最后才发现是这个原因),在Windows命令行中git clone的项目就没有任何问题(在IIS直接跑也没有问题)。
WSL跑linux服务程序的更多相关文章
- 什么?Android上面跑Linux?
前言 众所周知,现在程序员因为工作.个人兴趣等对各种系统的需求越来越大,部分人电脑做的还是双系统.其中,比较常见的有各种模拟器.虚拟机在windows上面跑Android.Linux,大家估计都习以为 ...
- Win10 Bash/WSL调试Linux环境下的.NET Core应用程序
一.简介 使用过Mac OS的程序员都知道,在Mac Book Pro上写程序是一件比较爽的事儿,作为dotneter,我们都比较羡慕Mac系统的环境,比如命令行,当然设备也是挺漂亮的. 在新的Win ...
- 【Linux】在Win10上搭建WSL(适用于Linux的Windows子系统)
1.打开WSL ,控制面板 -- 程序 -- 程序和功能 -- 打开或关闭Windows功能 - 选中[适用于Linux的Windows子系统] 2.开启后重启电脑 3.在Win10自带的Micro ...
- WSL及Linux入门
win10内置linux子系统(Windows Subsystem for Linux),可以不用安装Vmware等虚拟机学习linux啦. wsl开启方式 设置打开开发人员模式. 控制面板-程序和功 ...
- STM32是否可以跑linux
操作系统有两种 用MMU的 和 不用MMU的用MMU的是Windows MacOS Linux Android不用MMU的是FreeRTOS VxWorks ucOS... CPU有两种 带MMU的 ...
- 跑Linux内存占用率的shell脚本
#!/bin/bash ################################################################ # Mem Used Script # eg. ...
- Windows Subsystem for Linux (WSL)挂载移动硬盘U盘
WSL想通过移动硬盘处理一些数据,结果进去了无法发现移动硬盘,于是搜了好久也没有一个正确的解决办法,终于找到一个,现在贡献出来与大家共享. WSL比起linux挂载硬盘简单一些.而且windows本身 ...
- 在Linux的Windows子系统上(WSL)使用Docker(Ubuntu)
背景 平时开发大部人都是在提供了高效GUI的window下工作,但是真正部署环境普遍都是在Linux中,所以为了让开发环境和部署环境统一,我们需要在windows模拟LInux环境,以前我们可能通过虚 ...
- 黑科技抢先尝(续) - Windows terminal中WSL Linux 终端的极简美化指南
目录 修改默认源,为apt-get安装提速 安装python 和 python pip 安装 zsh 安装powerline-font中的特定字体 安装powerline-shell 修改~目录下的配 ...
随机推荐
- PHP语言开发微信公众平台(订阅号)之curl命令(补充)
在之前的一篇随笔中,博主在调用curl命令上传文件时会经常出现上传方法过时的情况.如下图所示: 所以,我们只需要把上传方法换成创建CURLFile 类即可.如下所示 $ch = curl_init() ...
- 关于SQL注入中编码问题的疑问
提到SQL注入的绕过,编码是其中最普通的一种方法,最常用的URL编码.之前一直有个疑问,编码与未编码到底有哪些地方存在区别? 以下是本人自己对URL编码的一些见解,可能有错误的地方欢迎大佬们指正. 什 ...
- python入门基础:文件的读写
文件的读写操作运用广泛,无论是何种语言都会涉及到文件的输入输出. 下面简单的总结一下文件的读写: 1:open()函数 f = open('workfile', 'w') 函数 open()返回文件的 ...
- OC对象里面包含的结构体类型的属性,不能对该结构体属性的成员单个进行修改
OC对象里面包含的结构体类型的属性,不能对该结构体属性的成员单个进行修改,需要对OC对象的结构体属性整体赋值. 关于网上很多博客写着“结构体类型里面的某个属性如果想要修改是不允许单个修改的” 之解释: ...
- Java 编码规范(转)
本文转自:http://www.javaranger.com/archives/390 文章总结出了java编码过程中的一些规范,以便参考. 1.合理组织代码层次,分层清晰:controller.lo ...
- JAVA格式化解析日期
- 架构风格:你真的懂REST吗?
本文探讨如下几个问题: 什么是REST REST包含哪些约束 什么是RESTful 纯RESTful API的难点在哪里 如果你去搜索「什么是REST」的话,大部分情况下,你看到的基本都是RESTfu ...
- free -g 说明
free -g 说明: free -g -/+ buffers/cache 说明: buffer 写缓存,表示脏数据写入磁盘之前缓存一段时间,可以释放.sync命令可以把buffer强制写入硬盘 ca ...
- Git单人本地仓库操作
本地仓库是个.git隐藏文件 以下为演示Git单人本地仓库操作 1.安装git sudo apt-get install git 密码:skylark 2.查看git安装结果 git 3.创建项目 在 ...
- 一个hibernate中的异常:NonUniqueDiscoveredSqlAliasException
在hibernate中用SQL查询返回的结果集中,列名或别名必须唯一,否则会报下面的错误.返回的结果集中,列名或别名可以没有,但只能有一列没有. //空别名重复的情况:org.hibernate.lo ...