I have been using dish soap to clean my chain from the start, since that's the only thing I can find I think suitable for cleaning oily stuff. I use two old tooth brush, grab a ziptie and tie it together with the brush facing each other and I scrub the chain and apply a good amount of dish soap. Is that method okay to use? If not, I will start using WD-40 as a degreaser because I can't find any other degreasers around my area and I can't shop online. So, do I just spray WD-40 on the chain and leave it there for awhile and start scrubbing or what?
Sadly, I think traditional wd40 has the edge on dish soap for the express purpose of removing grease and oil from a chain.
Dish soap/detergent needs water added to "activate", that is provide a carrier for the soap molecules to move through, and orientate their hydrophobic end into the grease/dirt. Without water the hydrophobic end has nothing to be scared of!
Personally I think a proper degreaser will be superior to both, but there's little point wanting on things you can't get.
On that note, dish soap is probably a lot cheaper than WD40. I would imagine blowing through a quarter of a can to clean a chain. You can buy the same stuff in bulk in a bottle rather than a pre-pressurised aerosol, which is intended for self-fill pressure sprayers or drip-lubrication on aluminium cutters.
Water with a few drops of dishwashing liquid is good to clean superficial dirt from a chain. Especially when also using an old rag for mechanical cleaning.
Before I apply new chain lube I rather have my chain slightly cleaner and use a home made degreaser. It comprises of water, alcohol (eg isopropanol, methylated alcohol), baking soda, and dish washing liquid.
I used this degreaser superficially. I want it to reduce surface muck. Especially grit and rock dust mixed with lube. These hard and fine particles cause wear by abrasion. The cleaning ought to avoid that these particles getting flushed between the rollers when applying fresh lube.
I do not want degreaser to get between the rollers. There is next to no chance to get contamination out anyway. But it might degrade the lube where it is needed.
Also for this reason it is important to thoroughly rinse after degreaser use.
To prevent misunderstandings: The property of WD40 of interest here is the following: it is a light oil in a spray tin, it is inexpensive, and readily available. It is also not particularly hazardous, unlike paint thinner. For the sake of this discussion one may replace it with any other product with similar properties.
WD40 on a dirty rag, and some well aimed squirts, is fantastic to remove thick grime and greasy muck. It's an easy way to get a clean looking shiny drivetrain.
One can also use larger quantities to deeply clean a chain. Degreaser is then required to remove the thinned grime and lube. However, WD 40 will get between the rollers and dissolve in the lube there. I do not recommend this on a fairly new chain (<50 h of use). The thick lube manufacturers use is much better than anything we might apply ourselves. (Except for maybe some exotic methods for one time use in pro racing like UFO.)
My experience with deep WD40 cleaning is a considerably reduced chain life and much shorter intervals until I had to re-lubricate. To a lesser degree I experienced the same issues with degreaser and automatic cleaning devices that contain pulley-like brushes.
One really can do too much cleaning.
The problem with soaps and similar is that they will not dissolve mineral oil, which in turn is part of your chain lube. So using a dish soap is only marginally better then just mechanically cleaning the chain with rag/brush/any other device.
I tried couple of general use degreesers, and my experience is as follows:
Dish soap - not good at all. After use requires rinsing and then putting lots of WD-40 to prevent rust
Isopropanol - not strong enough - removes little grit
Acetone - surprisingly little effect on the grit
Petroleum ether (sold often as a paint thinner) - cleans well, but has to disposed of in dedicated points, not in sewage system.
WD-40 - works very well, but similarly is a pollution generator and also quite pricey.
There is one trick you can try - I never tried that on chain, as I can get dedicated degreeser online. The mineral oils are soluble in fats, and fats are very efficiently cleaned by dish soap. You can try to first put some cooking oil on the chain, and only then clean with dish soap. I use this trick for cleaning hands after working on drivetrain and it works very well - better than any soap/scrubbing/brushing combo I ever used.
I used WD-40 for all chain related cleaning when I was a kid in school. I would carefully move the chain while spraying the whole chain, then use a clean cloth or paper towel to remove the results, moving the cloth around to clean spots as it gets dirty. You'll want to keep doing this until your cloth mostly stays clean. I grew up on a farm and later moved to a small city, so I know WD-40 works in both heavy grit and low contaminate environments.
Since you aren't a professional rider, you don't have to worry about chain wear. You'll likely replace your bike before needing to replace the chain, and chains are pretty inexpensive anyway.
I would avoid using soap, since that is water soluble, so it would wash away in any rain or puddles you end up riding through. Also, if you don't wash it all off, it'll start breaking down any oil or grease you apply later. There's also the problem that you have to use water to remove the soap, which is the exact thing you want to keep away from your chain.
WD-40 is a moisture barrier as well as being a light lubricant. Again, since you aren't a professional rider, you can get away with leaving a light coating of WD-40 on the chain. If you want something better, inexpensive automotive or bearing grease should work in a light coating. Even with having some WD-40 on the chain and adding grease to it, it'll simply lower the viscosity of the grease, rather than completely remove the effectiveness of the grease, like soap would. If you want to make sure there's as little WD-40 on the chain after cleaning as possible, simply get your chain moving at a high rate of speed so the WD-40 gets flung off, without a rag. Just let it fly off. You don't want to risk getting your fingers or even the rag caught in the sprockets. It's messy, but it works. Just keep yourself out of the direct line of spray and you should be fine.
I've tried "dry lube", but wasn't happy with it. It was expensive and it seemed to be more abrasive just in applying it. Also, the liquid literally dried out in the tube so I could only apply it once.
Dishwashing soap is a degreaser. As dishwashing soaps go, Dawn is a very effective degreaser, is inexpensive as one mixes a few ounces of soap in a quart of water.
WD40 is a degreaser and a very light lubricant which will dry quickly. If sprayed onto a chain dirt and grime will be flushed out of the chain. When cleaning a chain with WD40 in this method, a residue of WD40 will remain as a lube. If a chain specific lube is applied it will be thinned somewhat by the WD40. Thoroughly wiping down the chain and/or going for a ride will minimize the WD40 residue.
I typically use WD40 sprayed into a rag to do a quick clean of the chain exterior prior to lubricating. Lube is applied with one drop per roller, the excess lube flushes out a good amount of grime. To remove most of the excess oil from the outside of the chain, I'll go for a ride and bring a paper towel and wipe off the chain after 5 miles and again after another few miles. This way the inside of the chain is (relatively) clean and the outside is dry to reduce the amount of dirt picked up. This is how I typically clean & lube my chains and it works great for me.
For a thorough cleaning of a well used chain (many hundreds of miles), I'll use a citrus degreaser and a chain cleaning tool to wash and flush the chain. I've used Dawn but found the citrus degreaser to be stronger. One needs to thoroughly flush the degreaser with water. I use this method after rides/races in the rain where the chain has been filled with grit.
Mineral spirits are even more effective at breaking down old oil (gunk) but rather nasty to work with. To use mineral spirits I'll remove the chain from the bike and clean it in a jar. Used mineral spirits are saved as the dirt will precipitate to the bottom of the container.
Isopropyl alcohol (rubbing alcohol) can be used as a final rinse. Alcohol is a mild degreaser but more important it flushes out remaining water and evaporates quickly to avoid rust. The link rollers must be dry inside for surface tension to pull the lube into the link. Put another way, if water is inside the link rollers then many lubes will not get inside the chain.
Last note: new chains are packed in a rust prohibiting lube. This lube will last for a long time. BUT to prevent collecting sand/grit on the chain one needs to clean off the outside. WD40 sprayed into a rag will quickly clean off the outside without removing the lube inside the chain. Dish detergent would not work well for this.